現在のディレクトリのディレクトリを新しいフォルダに移動したいと思います。
ls -al
drwxr-xr-x 16 me staff 512 Jul 8 10:00 .
drwx------+ 16 me staff 512 Jul 8 05:38 ..
-rw-r--r--@ 1 me staff 6148 Jul 8 04:56 .DS_Store
-rw-r--r-- 1 me staff 0 Jul 7 18:26 .md
-rw-r--r--@ 1 me staff 67 Jul 7 09:36 Actions.md
drwxr-xr-x 3 me staff 96 Jul 8 04:56 Books
lrwxr-xr-x 1 me staff 41 Jul 7 09:41 Coder -> /Users/me/Desktop/Django/Coder
drwxr-xr-x 5 me staff 160 Jul 8 07:05 Git
drwxr-xr-x 8 me staff 256 Jul 8 06:32 Linux
drwxr-xr-x 3 me staff 96 Jul 7 11:11 Python
drwxr-xr-x 10 me staff 320 Jul 8 05:42 SQL
drwxr-xr-x 7 me staff 224 Jul 8 10:00 django
drwxr-xr-x 4 me staff 128 Jul 7 18:45 error_log
-rw-r--r--@ 1 me staff 1543 Jul 8 08:38 log_details.md
-rw-r--r--@ 1 me staff 700 Jul 8 05:00 log_summary.md
-rw-r--r--@ 1 me staff 61 Jul 8 04:56 readme.md
私はコードを試しました:
#retrieve all the files and dirs
files_and_dirs=(${echo *})
#loop the array and select dirs
for fd in ${files_and_dirs[i]};
if [[ -d "$fd"]];
mv -r "$fd" dst_dir
ところで、最初のステップでエラーが発生しました。
$ files_and_dirs=( $(echo *))
$ files_and_dirs
-bash: files_and_dirs: command not found
ベストアンサー1
globを使用してディレクトリを選択できます。
for d in ./*/; do
mv "$d" dest_dir/
done
もしあなたならした配列+明示的なテストを使用したいと思います。
files_and_dirs=( ./* )
for fd in "${files_and_dirs[@]}"; do
if [[ -d "$fd" ]]; then
mv "$fd" dest_dir/
fi
done
AFAIKとは異なり、cp
(再帰)オプションはmv
使用されません。-r
files_and_dirs
コマンドではないので見つかりません - 見たい場合価値配列で使用echo "${files_and_dirs[@]}"