Oynamak için ayrı bir dizin oluşturun (esas olarak daha sonra temizleme kolaylığı için); $TMPDIR
ayarlanmışsa değerini kullanır , aksi takdirde /tmp
:
mkdir "${TMPDIR-/tmp}/testing"
cd "${TMPDIR-/tmp}/testing"
Boşluk (boşluk, sekme, yeni satır, satır başı, geri dönüş) nedeniyle ayrı ancak birbirine benzeyen dosyalar oluşturun:
touch -- a b 'a ' 'b ' 'a b' 'a b' $'a\bb'
touch -- a$'\xe2\x80\x82'b a$'\xe2\x80\x83'b a$'\t'b a$'\n'b a$'\r'b
Yukarıdakiler için Patrick'e teşekkür ederiz . İki altıgen kodlu olanlar, somun ve koyun eti olarak bilinen UTF-8 boşluk ayırıcılarıdır ; "çift yönlü bağlamda Beyaz Boşluk görevi görür ve yansıtılmaz. Glif (ler), koşullar altında 20 başka glifle karıştırılabilir."
Düz bir dosya ve glob olarak ele alınırsa ilk dosyaya genişleyecek bir dosya oluşturun:
touch -- x '[x]'
Yukarıdakiler için Wumpus Q. Wumbley'e teşekkür ederiz .
Benzer damar içinde:
touch -- 'a?b' 'a*b'
Yukarıdaki yorumlar için buradaki yorumlarda dave_thompson_085'e teşekkür ederiz .
touch -- foo\`echo\ malicious\`bar
Yukarıdaki için godlygeek için kredi .
Kabuk bağlamında değerlendirilirse, farklı bir şeye genişleyecek bir dosya adı (ve muhtemelen keyfi yürütme!):
touch '$( echo boom )'
kullanın:
touch -- single\'quote double\"quote back\\slash
tırnaklardan kaçmadan tırnak içine bir dosya adı koyma girişimlerini yakalamak için.
touch -- -a -b -c -r -R - a=x
Yukarıdakiler için Stéphane Chazelas'a teşekkür ederiz .
Adlandırılmış bir kanal ve sembolik bağlantı oluşturun ("normal" olmayan dosyalar oluşturmak için):
mkfifo fifo
ln -s a alink
Adlarında çeşitli boşluk bulunan ve içindeki belirteç dosyalarıyla birlikte alt dizinler oluşturun:
mkdir subdir "subdir 1" "subdir 2" "subdir 3 " subdir$'\n'4
touch subdir/file0 "subdir 1"/file1 "subdir 2"/file2 "subdir 3 "/file3 subdir$'\n'4/file4
Dosya adları sadece içeren oluşturun *
, (kaldır muhtemelen sorunlu) sadece (düzenli!) Alanı, ölü sembolik bağlantı, sembolik bağlantı oluşan bir dosya adı olduğunu kendi üzerine döngüler ve üst dizine bir bağlantı sırtı bir alt dizin:
touch -- '*' '**' '***' ' '
ln -s /does/not/exist dead
ln -s loop loop
mkdir subdir_with_link
(cd subdir_with_link && ln -s .. parent)
Daha fazla çeşitli dosya adı. Son ikisi "kesirli eğik çizgi" ve "bölmeli eğik çizgi" için unicode'dur.
touch -- '(' '!' '!!' $'\xe2\x81\x84' $'\xe2\x88\x95'
Scott'tan fikirler :
touch -- '-' '--' ';' '&' '|' '<' '>' '$' ')' '{' '}' = \\ '!' '#' '{a,b}'
Bazı bölgelerde zararsız, ancak diğerlerinde tehlikeli karakterler:
touch $'X\xa0Y' # non-breaking space in iso8859-1 which is considered
# "blank" and "space" in some locales
touch $'\xa3\x5c' $'\xa3\x60' # α and ε in BIG5 or BIG5-HKSCS charset, but
# �\ and �` in ASCII
Bazı yerel ayarlarda aynı sıralama yapan karakterler:
touch ① ② # sorts the same in GNU locales, order non-deterministic.
.[!.]* *
Glob'tan kaçan dosyalar (bazen hem gizli hem de gizli olmayan dosyaları genişletmek için kullanılır):
touch ..foo ...