ファイル名に一致するファイルを別のディレクトリに移動する

ファイル名に一致するファイルを別のディレクトリに移動する

ディレクトリが 2 つあります。 dir_1にはa.mp4b.mp4c.mp4がありd.mp4dir_2にはa.txt、のみがあります。内のファイル名と一致するのはこれらのファイル名のみであるため、b.txtスクリプトは と を に移動する必要がありますa.mp4b.mp4このような特定の操作を実行する必要がある場合、スクリプトに従うのは難しいと思います。dir_3dir_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.*

関連情報