গণনা করা হচ্ছে না mv, এর জন্য আপনার আসলে কোনও বাইরের প্রক্রিয়া দরকার নেই - আপনি কেবল ধরণের পুফ করতে পারেন ।
ifsqz() ( LC_ALL=C sqz=$1
isf() { [ -e "$1" ] || [ -L "$1" ] ; }
set -- * ; set -f
for f do isf "$f" || break
IFS=$sqz; set -- $f; IFS=
isf "$*" || mv -- "$f" "$*"
done
)
তবুও, এর অর্থ mvপ্রতি ফাইলের অনুরোধ, এবং সম্ভবত renameএটি আরও ভাল। যদিও শুধুমাত্র দেওয়া কাজ করা উচিত একটি POSIX mvমধ্যে $PATHএবং POSIX শেল।
সুতরাং, আমি এর জন্য এক ধরণের পাগল ডেমো নিয়ে এসেছি। পরীক্ষার সেটটি তৈরি করা হয়:
tee - - - - <<CGEN |\
dd cbs=90 conv=unblock |\
sed 'G;$!N'";s/^/touch -- '/;s/$/'/" |sh
$( #BEGIN CGEN
LC_ALL=C
i= n='"$((i=((i=i+1)==10||i==39||i==47)>0?(i+1):i))"'
printf '%b -_ ---___' $(
IFS=0; eval \
printf '"\\\\%04o\\\\%04o "' "$(
printf "$n"' "$i" '%s $(
printf %.252d
#END
))"))
CGEN
প্রথম স্থানে আমি প্রথমে স্বীকৃতি জানাব যে উপরের কমান্ডটি এমন ফলাফল তৈরি করে যা অন্যান্য উপায়ে আরও সহজেই পাওয়া যায়। তবে অন্যান্য উপায়গুলি সম্ভবত কীভাবে করা হবে $IFSএবং একটি সামান্য (অসুস্থ?) কল্পনাশক্তি প্রদর্শন করবে না।
সুতরাং প্রথম বিটটি মোটামুটি সোজা-এগিয়ে রয়েছে:
tee পাইপগুলি এর ইনপুটটির 5 অনুলিপিগুলি দেয় - হেরিডোকোমেন্ট বলে CGEN
dd ব্লক প্রতি 90 বাইট এবং নতুন পাইপগুলিতে এটির ইনপুট অবরোধ করে ...
sedসেই দুটি ব্লকের মধ্যে দুটি \nইভলাইন চরিত্রের সাথে 'যোগ দেয়, ফলাফলগুলি এককভাবে উদ্ধৃত করে এবং touch --পাইপ আউট করার আগে প্রতিটি লাইন চক্রের জন্য স্ট্রিংকে প্রস্তুত করে ...
sh যা শেল কমান্ড হিসাবে সমস্ত ইনপুট কার্যকর করে
#CGENবিট যদিও ... ওয়েল, সংক্ষেপে ...
নীচে printf252 0s মুদ্রণ
শেষের জন থেকে পরবর্তী 252 পায় ''নাল-স্ট্রিং আর্গুমেন্ট এবং প্রতিটি বিষয়বস্তু ছাপে জন্য $nস্ট্রিং দ্বারা অনুসরণ" $i "
evalprintfএটি 2 টি ব্যাকস্ল্যাশ টুকরো টুকরো টুকরো করে অষ্টাল নাম্বার হিসাবে ব্যাখ্যাটির ফলাফলগুলি মুদ্রণের আগে পরবর্তী যুক্তিগুলির ব্যাখ্যা করে
সর্বশেষে প্রতিটি জোড়ের জন্য printfস্ট্রিং অনুসরণ করে অষ্টাল 2 এর জন্য বাইট মানগুলি মুদ্রণ করে-_ ---___
$nএকটি সমীকরণের সূচনা করা হয়েছে $iযা 10, 39, বা 47 এর মান বাদ দিয়ে প্রতিটি মূল্যায়নের জন্য একের পর এক বৃদ্ধি পাবে - (যেগুলি \newline, 'একক-উক্তি এবং /যথাক্রমে ASCII দশমিকের মধ্যে স্ল্যাশ)
শেষ ফলাফলটি এমন এক ডিরেক্টরি যা আমার চরসেটে 1 থেকে 255 অবধি একক-উদ্ধৃতি (কেবলমাত্র আরও একটি sed s///বিবৃতি এড়াতে এড়িয়ে যায় ) এবং /স্ল্যাশ বাদে প্রচুর কুৎসিত ফাইল নাম ধারণ করে । এই ফাইলের নামগুলি দেখতে এইরকম:
(set -- *; printf '%s\n\n##############\n\n%s\n' "${9}" "${34}") | cat -A
---___ww -_ ---___xx -_ ---___yy -_ ---___zz -_ ---___{{ -_ ---___|| -_ ---$
$
___}} -_ ---___~~ -_ ---___^?^? -_ ---___M-^@M-^@ -_ ---___M-^AM-^A -_ ---___M-^BM-^B -_ ---___M-^CM-^C$
$
##############$
$
-_ ---___M-ZM-Z -_ ---___M-[M-[ -_ ---___M-\M-\ -_ ---___M-]M-] -_ ---___M-^M-^ -_ ---___M-_M-_ -_$
$
---___M-`M-` -_ ---___M-aM-a -_ ---___M-bM-b -_ ---___M-cM-c -_ ---___M-dM-d -_ ---___M-eM-e -_ ---___$
এখন আমি এই ফাইলগুলিতে কিছু তথ্য পাব:
chksqz() ( LC_ALL=C sqz=$1
set -- * ; set -f ; IFS= ; tc="$*"
printf '#%s\n' \
"There are $# files in this test directory." \
"All filenames combined contain a total of ${#tc} bytes."
IFS=$sqz ; set -- $* ; IFS= ; sc="$*"
printf "%s '$sqz'" \
"#Of which ${#sc} bytes are not"\
" and $((${#tc}-${#sc})) bytes are"
set +f ; unset IFS
printf ".\n#%s\n#Total:\t%d\n#Other:\t%d\n#'$sqz':\t%d\n" \
"And to confirm these figures:" \
$( printf %s * | wc -c
printf %s * | tr -d "$sqz" | wc -c
printf %s * | tr -dc "$sqz" | wc -c
))
chksqz '_ -'
আউটপুট
#There are 101 files in this test directory.
#All filenames combined contain a total of 17744 bytes.
#Of which 2692 bytes are not '_ -' and 15052 bytes are '_ -'.
#And to confirm these figures:
#Total: 17744
#Other: 2692
#'_ -': 15052
ঠিক আছে. এখন অবশেষে, কাজ করতে:
ifsqz '_ -'
chksqz '_ -'
আউটপুট
#There are 101 files in this test directory.
#All filenames combined contain a total of 2692 bytes.
#Of which 2692 bytes are not '_ -' and 0 bytes are '_ -'.
#And to confirm these figures:
#Total: 2692
#Other: 2692
#'_ -': 0
সফল! আপনি নিজের জন্য দেখতে পারেন:
ls
????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
???????????????????????????
???????????????????????????
???????????????????????????
????????????????????????????
????????????????????????????
????????????????
??????????????????????
????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
???????????????????????????
???????????????????????????
???????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
????????????????????????????
??????????????????????????
????????????????????????
????????????????????
??????????????????
????????????????????????????
??
????????????????????????????
??????????????????????????
????????????????????????????
????????????????????????????
????????????????????!!""##
??????????????????!!""##$$
????????????????!!""##$$%%
????????????!!""##$$%%&&((
????????!!""??##$$%%&&(())
$$%%&&(())**??++,,..0011
%%&&(())**++??,,..00112233
&&(())**++,,??..0011223344
))**++,,..??0011223344556
**++,,..00??11223344556677
22334455667788??99::;;<<==>>
445566778899??::;;<<==>>??@@
5566778899::;;??<<==>>??@@AA
6778899::;;<<??==>>??@@AABB
8899::;;<<==??>>??@@AABBCCDD
\\]]^^``aa??bbccddeeffgghh
]]^^``aabbc??cddeeffgghhii
^^``aabbccdd??eeffgghhiijj
??@@AABBCCDDEE??FFGGHHIIJJKK
AABBCCDDEEFF??GGHHIIJJKKLLM
BBCCDDEEFFGG??HHIIJJKKLLMMNN
CCDDEEFFGGHHII??JJKKLLMMNNOO
EEFFGGHHIIJJ??KKLLMMNNOOPPQQ
ffgghhiijjkk??llmmnnooppqqrr
gghhiijjkkllmm??nnooppqqrrss
iijjkkllmmnn??ooppqqrrsstt
jjkkllmmnnoo??ppqqrrssttuuvv
kkllmmnnooppqq??rrssttuuvvww
LLMMNNOOPPQQRR??SSTTUUVVWWXX
MNNOOPPQQRRSS??TTUUVVWWXXYY
OOPPQQRRSSTT??UUVVWWXXYYZZ[[
PPQQRRSSTTUUVV??WWXXYYZZ[[\\
RRSSTTUUVVWW??XXYYZZ[[\\]]
ssttuuvvwwxx??yyzz{{||}}~~??
ttuuvvwwxxyyz??z{{||}}~~????
uuvvwwxxyyzz{{??||}}~~??????
wwxxyyzz{{||??}}~~??????????
xxyyzz{{||}}~~??????????????
YYZZ[[\\]]^^??``aabbccddee
ZZ[[\\]]^^``??aabbccddeeff