Zsh
mv Foo/*(DN) Bar/
অথবা
setopt -s glob_dots
mv Foo/*(N) Bar/
( (N)
ডিরেক্টরিটি খালি নয় বলে আপনি যদি ছেড়ে যান ))
সজোরে আঘাত
shopt -s dotglob nullglob
mv Foo/* Bar/
Ksh93
যদি আপনি জানেন ডিরেক্টরিটি খালি নয়:
FIGNORE='.?(.)'
mv Foo/* Bar/
স্ট্যান্ডার্ড (পসিক্স) শি
for x in Foo/* Foo/.[!.]* Foo/..?*; do
if [ -e "$x" ]; then mv -- "$x" Bar/; fi
done
আপনি যদি mv
কমান্ডটি সফল হয়েও ত্রুটির স্থিতি ফিরিয়ে দিতে চান তবে এটি অনেক সহজ:
mv Foo/* Foo/.[!.]* Foo/..?* Bar/
জিএনইউ সন্ধান করুন এবং জিএনইউ এমভি
find Foo/ -mindepth 1 -maxdepth 1 -exec mv -t Bar/ -- {} +
স্ট্যান্ডার্ড সন্ধান
যদি আপনি উত্স ডিরেক্টরিতে পরিবর্তন করতে আপত্তি না করেন:
cd Foo/ &&
find . -name . -o -exec sh -c 'mv -- "$@" "$0"' ../Bar/ {} + -type d -prune
বাশ, ksh93 এবং zsh এ ডট ফাইলগুলি মিলছে কিনা তা নিয়ন্ত্রণ করার বিষয়ে এখানে আরও বিশদ।
সজোরে আঘাত
dotglob
বিকল্পটি সেট করুন ।
$ echo *
none zero
$ shopt -s dotglob
$ echo *
..two .one none zero
আরও নমনীয় GLOBIGNORE
পরিবর্তনশীল রয়েছে , যা আপনি উপেক্ষা করার জন্য ওয়াইল্ডকার্ড নিদর্শনগুলির একটি কোলন-বিচ্ছিন্ন তালিকায় সেট করতে পারেন। যদি আনসেট না করা (ডিফল্ট সেটিংস) থাকে তবে শেলটি এমনটি আচরণ করে যে মান dotglob
সেট করা থাকলে শূন্য ছিল .*
এবং বিকল্পটি যদি আনসেট না করা হয় তবে মানটি হয় । ম্যানুয়ালটিতে ফাইলের নাম প্রসারণ দেখুন । বিস্তৃত ডিরেক্টরিগুলি .
এবং ..
সর্বদা বাদ দেওয়া হয়, যদি .
না প্যাটার্ন দ্বারা স্পষ্টভাবে মেলে।
$ GLOBIGNORE='n*'
$ echo *
..two .one zero
$ echo .*
..two .one
$ unset GLOBIGNORE
$ echo .*
. .. ..two .one
$ GLOBIGNORE=.:..
$ echo .*
..two .one
Ksh93
FIGNORE
ভেরিয়েবল সেট করুন । যদি আনসেট না করা হয় (ডিফল্ট সেটিংস), শেলটি মান হিসাবে আচরণ করে .*
। উপেক্ষা করার জন্য .
এবং ..
এগুলি অবশ্যই স্পষ্টভাবে মিলে যেতে হবে (ksh 93s + ২০০৮-০১-৩১ এর ম্যানুয়ালটিতে বলা হয়েছে .
এবং ..
সর্বদা উপেক্ষা করা হয়, তবে এটি প্রকৃত আচরণটি সঠিকভাবে বর্ণনা করে না)।
$ echo *
none zero
$ FIGNORE='@(.|..)'
$ echo *
..two .one none zero
$ FIGNORE='n*'
$ echo *
. .. ..two .one zero
আপনি একটি ডট ফাইল অন্তর্ভুক্ত করতে পারে প্যাটার্ন তাদের স্পষ্টভাবে মেলানোর মাধ্যমে।
$ unset FIGNORE
$ echo @(*|.[^.]*|..?*)
..two .one none zero
ডিরেক্টরিটি ফাঁকা থাকলে প্রসারণটি ফাঁকা হয়ে আসতে, N
প্যাটার্ন মেলানো বিকল্পটি ব্যবহার করুন : ~(N)@(*|.[^.]*|..?*)
বা ~(N:*|.[^.]*|..?*)
।
Zsh
dot_glob
বিকল্পটি সেট করুন ।
% echo *
none zero
% setopt dot_glob
% echo *
..two .one none zero
.
এবং ..
মিলেছে না হয়, এমনকি যদি প্যাটার্ন নেতৃস্থানীয় মিলে যায় .
স্পষ্টভাবে।
% echo .*
..two .one
আপনি D
গ্লোব কোয়ালিফায়ারের সাথে একটি নির্দিষ্ট প্যাটারনে ডট ফাইলগুলি অন্তর্ভুক্ত করতে পারেন ।
% echo *(D)
..two .one none zero
যোগ N
সম্প্রসারণ একটি খালি ডিরেক্টরির মধ্যে খালি আসা আউট করতে উল্লিখিত glob কোয়ালিফায়ার: *(DN)
।
দ্রষ্টব্য: আপনি যদি বিভিন্ন আদেশ মধ্যে ফাইলের নাম সম্প্রসারণ ফলাফল (যেমন, পেতে পারেন none
দ্বারা অনুসরণ .one
দ্বারা অনুসরণ ..two
) আপনার সেটিংসের উপর ভিত্তি করে LC_COLLATE
, LC_ALL
এবং LANG
ভেরিয়েবল।