🍴

Linuxコマンド:ディレクトリ構造をコピーする

2021/03/29に公開

hoge というディレクトリの構造を fuga というディレクトリの中にコピーする。

$ tree -idf -L 2 --noreport hoge | awk 'NR {print "fuga/" $1}' | xargs mkdir -p

ワンライナーの構造としては

  1. hogeというディレクトリのサブディレクトリを列挙する
    • $ tree -idf -L 2 --noreport hoge
    • -L n で深さ n まで列挙する(書かなければ再帰的にどこまでも列挙)
  2. 列挙したディレクトリ一行ずつfuga/hoge/...という名前に編集する
    • $ awk 'NR {print "fuga/" $1}'
  3. ディレクトリを作成する
    • $ xargs mkdir -p
    • xargs で前のコマンドの出力を引数にしている

となる。

Discussion