สร้างไดเรกทอรีแยกต่างหากเพื่อเล่น (เพื่อความสะดวกในการทำความสะอาดในภายหลังส่วนใหญ่); สิ่งนี้จะใช้ค่าเป็น$TMPDIR
ถ้าตั้งค่าไว้มิฉะนั้น/tmp
:
mkdir "${TMPDIR-/tmp}/testing"
cd "${TMPDIR-/tmp}/testing"
สร้างไฟล์ที่แยกจากกัน แต่มีลักษณะคล้ายกันเนื่องจากช่องว่าง (ช่องว่างแท็บขึ้นบรรทัดใหม่ carriage return, backspace):
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
สินเชื่อเพื่อที่อยู่ด้านบนเพื่อแพทริค รหัสเลขฐานสิบหกสองอันคือตัวคั่นช่องว่าง UTF-8 ที่รู้จักในชื่อnutและmutton ; "ในบริบทแบบสองทิศทางมันทำหน้าที่เป็นพื้นที่สีขาวและ (ไม่) เป็นมิเรอร์สัญลักษณ์ (s) สามารถภายใต้สถานการณ์จะสับสนกับอีก 20 ร่ายมนตร์"
สร้างไฟล์ธรรมดาและไฟล์ที่จะขยายเป็นไฟล์แรกหากไฟล์นั้นถูกถือว่าเป็นไฟล์ glob:
touch -- x '[x]'
สินเชื่อเพื่อที่อยู่ข้างต้นเพื่อWumpus Q. Wumbley
ในหลอดเลือดดำที่คล้ายกัน:
touch -- 'a?b' 'a*b'
เครดิตสำหรับด้านบนเพื่อdave_thompson_085ในความคิดเห็นที่นี่
touch -- foo\`echo\ malicious\`bar
สินเชื่อเพื่อที่อยู่ด้านบนเพื่อgodlygeek
ชื่อไฟล์ที่จะขยายไปสู่บางสิ่งที่แตกต่าง (และอาจมีการดำเนินการโดยพลการ!) หากประเมินในบริบทเชลล์:
touch '$( echo boom )'
ใช้:
touch -- single\'quote double\"quote back\\slash
เพื่อพยายามพยายามใส่ชื่อไฟล์ในเครื่องหมายคำพูดโดยไม่ต้องใส่เครื่องหมายคำพูด
touch -- -a -b -c -r -R - a=x
สินเชื่อเพื่อที่อยู่ด้านบนเพื่อStéphane Chazelas
สร้างไพพ์ที่มีชื่อและ symlink (เพื่อสร้างไฟล์ที่ไม่ "ปกติ"):
mkfifo fifo
ln -s a alink
สร้างไดเรกทอรีย่อยที่มีช่องว่างต่าง ๆ รวมอยู่ในชื่อของพวกเขาพร้อมกับไฟล์โทเค็นภายในพวกเขา:
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
สร้างชื่อไฟล์ที่มี*
(อาจเป็นปัญหาในการลบ), ชื่อไฟล์ประกอบด้วยพื้นที่ (ปกติ!), ลิงก์สัญลักษณ์ตาย, ลิงก์สัญลักษณ์ที่วนซ้ำไปมาเองและไดเรกทอรีย่อยที่มีลิงค์กลับไปยังไดเรกทอรีหลัก:
touch -- '*' '**' '***' ' '
ln -s /does/not/exist dead
ln -s loop loop
mkdir subdir_with_link
(cd subdir_with_link && ln -s .. parent)
ชื่อไฟล์อื่น ๆ อีกมากมาย สองอันสุดท้ายเป็นยูนิโค้ดสำหรับ "เศษส่วนเฉือน" และ "กองทับ"
touch -- '(' '!' '!!' $'\xe2\x81\x84' $'\xe2\x88\x95'
ไอเดียจากScott :
touch -- '-' '--' ';' '&' '|' '<' '>' '$' ')' '{' '}' = \\ '!' '#' '{a,b}'
ตัวละครที่ไม่เป็นอันตรายในบางพื้นที่ แต่เป็นอันตรายในที่อื่น ๆ :
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
อักขระที่เรียงลำดับเดียวกันในบางโลแคล:
touch ① ② # sorts the same in GNU locales, order non-deterministic.
ไฟล์ที่หลบหนี.[!.]* *
glob (บางครั้งใช้เพื่อขยายไฟล์ที่ซ่อนและไม่ซ่อน):
touch ..foo ...