खेलने के लिए एक अलग निर्देशिका बनाएं (बाद में सफाई की आसानी के लिए, मुख्य रूप से); $TMPDIR
यदि यह सेट है, तो यह मान का उपयोग करता है , अन्यथा /tmp
:
mkdir "${TMPDIR-/tmp}/testing"
cd "${TMPDIR-/tmp}/testing"
ऐसी फाइलें बनाएँ जो अलग हों, लेकिन व्हॉट्सएप (स्पेस, टैब, न्यूलाइन, कैरिज रिटर्न, बैकस्पेस) के कारण एक-दूसरे के समान दिखाई देती हैं:
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 अंतरिक्ष विभाजक हैं जिन्हें अखरोट और मटन के रूप में जाना जाता है ; "द्विदिश संदर्भ में यह व्हाइट स्पेस के रूप में कार्य करता है (हैं) को प्रतिबिंबित नहीं किया जाता है। ग्लिफ़ (एस) परिस्थितियों में, 20 अन्य ग्लिफ़ के साथ भ्रमित हो सकता है।"
एक सादा फ़ाइल बनाएं और एक जिसे पहले एक ग्लोब के रूप में माना गया था, उसका विस्तार होगा:
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
स्टीफन चेज़ेलस को उपरोक्त के लिए श्रेय ।
एक नामांकित पाइप और सिमिलिंक बनाएं (ऐसी फाइलें बनाने के लिए जो "नियमित" नहीं हैं):
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'
स्कॉट से विचार :
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.
.[!.]* *
ग्लोब से बचने वाली फाइलें (कभी-कभी छिपी हुई और गैर-छिपी हुई दोनों फाइलों का विस्तार करने के लिए उपयोग की जाती हैं):
touch ..foo ...