複数のファイルをLinuxのサブディレクトリに移動する

複数のファイルをLinuxのサブディレクトリに移動する

私はこのようなディレクトリ構造を持っています。

dir
├── dirA
│   └── file1
│   └── subdir
└── dirB
    └── file2
    └── subdir

file1をdirA / subdirに移動し、file2をdirB / subdirに移動する必要があります。 Linuxでこれを行うにはどうすればよいですか?

答え1

スクリプトまたは単一のコマンドを使用してこれを実行できますdirか?mv dirA/file1 /dirA/subdir/mv dirB/file2 /dirB/subdir/

ジェイソンC.

答え2

これは、さまざまなリポジトリディレクトリのさまざまな.ymlファイルを各リポジトリディレクトリの「task」サブディレクトリに移動するのに効果的でした。

for dir in */; do mv -- "$dir"*.yml "${dir}tasks/"; done

答え3

検索

find dir -mindepth 2 -maxdepth 2 -type f -execdir sh -c 'mv -t ./*/ "$1"' find-sh {} \;

find dir \
  -mindepth 2 -maxdepth 2 -type f \
  -execdir sh -c '
        mv -t ./*/ "$1"
  ' find-sh {} \;

元のディレクトリ構造

dir
├── dirA/
│   ├── fileA
│   └── subdir/
│       ├── e
│       ├── q
│       └── w
└── dirB/
    ├── fileB
    └── subdir/
        ├── c
        ├── x
        └── z

移動作業後

dir
├── dirA/
│   └── subdir/
│       ├── e
│       ├── fileA
│       ├── q
│       └── w
└── dirB/
    └── subdir/
        ├── c
        ├── fileB
        ├── x
        └── z

答え4

シェルで次のコマンドを実行します。

mv file1 /dir/dirA
mv file2 /dir/dirB**

mvは移動を意味します。

mv "filename.txt" "location/where/you/want/file/to/go"

関連情報