ディレクトリが 2 つあります。
dir_1
にはa.mp4
、b.mp4
、c.mp4
がありd.mp4
、dir_2
にはa.txt
、のみがあります。内のファイル名と一致するのはこれらのファイル名のみであるため、b.txt
スクリプトは と を に移動する必要がありますa.mp4
。b.mp4
このような特定の操作を実行する必要がある場合、スクリプトに従うのは難しいと思います。dir_3
dir_2
答え1
試す、
for f in "dir_2"/*; do
filename=${f##*/}
mv -t "dir_3" "dir_1/${filename%.*}".*
done
- ファイルをループする
dir_2
(*.txt
これらのファイルのみをループする場合に使用) ${f##*/}
パスなしのファイル名が表示されます。${filename%.*}
拡張子なしのファイル名を返します。mv -t "dir_3" "dir_1/${filename%.*}".*
filename
指定された(拡張子がクリアされた)すべてのファイルを に移動します。必要に応じての代わりにdir_3
を指定することもできます。.mp4
.*