यह एक बुरा विचार है (फ़ाइल नामों में अजीब अक्षर हैं) लेकिन आप कर सकते हैं
mv somefile.txt "foo
bar"
(आप भी कर सकते थे mv somefile.txt "$(printf "foo\nbar")"
या mv somefile.txt foo$'\n'bar
, आदि ... विवरण आपके शेल के लिए विशिष्ट हैं। मैं उपयोग कर रहा हूं zsh
)
ग्लोबिंग के बारे में अधिक पढ़ें , उदा ग्लोब (7) । विवरण शेल-विशिष्ट हो सकता है। लेकिन समझें कि /bin/mv
(आपके शेल द्वारा) दिया गया है, निष्पादित (2) के माध्यम से , तर्कों का एक विस्तारित सरणी: तर्क विस्तार और ग्लोबिंग , इन्वोकिंग शेल की जिम्मेदारी है।
और आप भी ऐसा करने के लिए एक छोटे सी प्रोग्राम को कोड कर सकते हैं:
#include <stdio.h>
#include <stdlib.h>
int main() {
if (rename ("somefile.txt", "foo\nbar")) {
perror("rename somefile.txt");
exit(EXIT_FAILURE);
};
return 0;
}
कार्यक्रम में ऊपर सहेजें foo.c
, इसे gcc -Wall foo.c -o foo
तब संकलित करें./foo
इसी तरह, आप पर्ल, रूबी, पायथन, ओकेमेल, आदि में एक समान स्क्रिप्ट कोड कर सकते हैं।
लेकिन यह एक बुरा विचार है। फ़ाइल नाम में नई कहानियों से बचें (यह उपयोगकर्ता को भ्रमित करेगा, और यह कई स्क्रिप्टों को तोड़ सकता है)।
वास्तव में, मैं फ़ाइल पथों में केवल गैर-उच्चारण अक्षरों, अंकों और +-/._%
वर्णों ( /
निर्देशिका विभाजक होने के साथ ) का उपयोग करने की सलाह देता हूं । "छिपी" फाइलों (शुरुआत के साथ .
) का उपयोग सावधानी और पंगुता के साथ किया जाना चाहिए। मेरा मानना है कि फ़ाइल नाम में किसी भी तरह की जगह का उपयोग करना एक गलती है। इसके बजाय अंडरस्कोर (उदा foo/bar_bee1.txt
) या माइनस (उदा foo/bar-bee1.txt
) का उपयोग करें