web-dev-qa-db-ja.com

フォルダーを現在のディレクトリにコピーするLinux cpコマンド

古いMS-DOSを使用していたように、現在のディレクトリにフォルダーをコピーするための同一のコマンドがあるかどうか疑問に思います。私の現在のディレクトリの場所は次のとおりだとしましょう:

/var/www/

次の場所にフォルダーとファイルがあります。

/home/hope/subfolder/docs/
/home/hope/subfolder/images/
/home/hope/subfolder/.config
/home/hope/subfolder/readme.txt

私は次のコマンドを知っています:

cp -rT /home/hope/subfolder .

「サブフォルダ」フォルダ内のすべてのファイル(ドット隠しファイルも含む)およびフォルダを現在のディレクトリにコピーするため、結果は次のようになります。

/var/www/docs/
/var/www/images/
/var/www/.config
/var/www/readme.txt

ソースフォルダーを現在の場所にコピーするコマンドは次のようになります。

cp -rT /home/hope/subfolder ./subfolder

これは問題ありませんが、宛先の複雑なフォルダ名を間違えることがあるので、次のようなコマンドを使用する方法があります。

cp -rT /home/hope/subfolder .

またはこのように

cp -rT /home/hope/subfolder /var/www/.

次の結果が得られます。

/var/www/subfolder/docs/
/var/www/subfolder/images/
/var/www/subfolder/.config
/var/www/subfolder/readme.txt

ありがとうございました。

20
user702300

-Tパラメーターを省略すると、コマンドが正しく機能しなくなるためです。

cp -r /home/hope/subfolder .

-Tパラメーターは、ターゲット引数をファイルとして扱うため、それが実際にディレクトリーである場合、コピーはまったく実行されません。

フレンドリーなリマインダー:事実上すべてのUnixコマンドには-helpコマンドライン引数があり、トラブルが発生した場合に試してみる価値があります:)

31
Vadim Landa

私にとっての主な障壁は/ homeの部分でした。 「a」という文字で始まった自宅のフォルダから、自宅ではない現在のフォルダにファイルをコピーする必要がありました。だから私は使用しました:

cp home/tmp/a* ./

最初の行は私のために働いた。私は次のようなコマンドを試していました:

cp ~/home/tmp/a* ./

しかし、これはうまくいきませんでした。

3
Aadn