ファイルを2つのディレクトリに戻す

ファイルを2つのディレクトリに戻す
$ cat file
/tmp/foldera/folderb/folderc/file1
/tmp/folderc/folderd/foldere/file2
/tmp/folderf/folderg/folderh/file3

このファイルを次に移動する必要があります。

/tmp/foldera/
/tmp/folderc/
/tmp/folderf/

これを行うには、ループまたは簡単で便利な方法を使用してください。

ベストアンサー1

whileループを使用してください:

while IFS= read -r l; do
  mv -v -- "$l" "${l%/*/*/*}/"
done <file
  • while IFS= read -r lfile一行ずつ読んでみましょう。
  • mv -vファイルを移動して詳細を -v教えてください。mv
    • "$l"ソースファイル名
    • "${l%/*/*/*}/"宛先ディレクトリです。/*/*/*ファイル名の末尾とその間にある3つのスラッシュ()を削除します。

これで以下が生成されます。

»/tmp/foldera/folderb/folderc/file1“ -> »/tmp/foldera/file1“
»/tmp/folderc/folderd/foldere/file2“ -> »/tmp/folderc/file2“
»/tmp/folderf/folderg/folderh/file3“ -> »/tmp/folderf/file3“

おすすめ記事