ターミナルを使用して、ディレクトリ内のすべてのサブディレクトリにコンテンツ/ファイルをコピーします


17

フォルダー内のすべてのサブフォルダーにファイルをコピーしたい。コマンドラインでこれを行うにはどうすればよいですか?

回答:


26

すべてのサブフォルダー(および、実行したい内容に応じてサブフォルダーも)の現在の作業ディレクトリにファイルを配置する方法

これにより、すべてのサブフォルダーにファイルが配置されますが、サブフォルダーには配置されません。

for d in */; do cp water.txt "$d"; done

これによりwater.txt、すべてのサブフォルダーとそのサブフォルダーにファイルが配置されます(water.txtのすべてのインスタンスをコピーするファイル名に変更します)。

for i in ./* # iterate over all files in current dir
do
    if [ -d "$i" ] # if it's a directory
    then
        cp water.txt "$i" # copy water.txt into it
    fi
done

このlinuxquestionsスレッドからの情報


13

そのワンライナーを使用できます:

find <target-dir> -type d -exec cp <the file> {} \;

深さを1に制限->直接のディレクトリのみ

find <target-dir> -type d -maxdepth 1 -exec cp <the file> {} \;


2
この再帰的に行い、すべてのサブディレクトリだけでなく、即時のサブディレクトリ
Anake

2
私の答えは更新さ@Anake
ortang

この答えは素晴らしいです!
金華王
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.