Linuxのディレクトリコピーと削除のコマンドオプションとは

2017年12月18日

Linuxでファイルをコピーする場合、ほとんど注意は必要ないですね。

ところが、Linuxでライブラリをコピーするには、ちょっと注意がいります。

ファイルをコピーする時と同様に実行しようとすると、指定した内容がファイルではないとのワーニングが出るんです。

この記事では、ラズパイで SCPコマンドを使用してディレクトリをコピーする場合と、ディレクトリを削除する際のコマンドのオプションについて記録を残します。

皆様のご参考になれば。

スポンサーリンク

ディレクトリをコピーしようとしたら…

60爺は、ディレクトリの中身全てを SCP(sshを使ってネットワーク・ホスト間でファイルを安全にコピーする)コマンドを使用してコピーしようとしました。

その際、次のエラーに遭遇しました。

XXXXXXXX@raspbian:~/Downloads/bluebacks $ scp /home/XXXXXXXX/Downloads/bluebacks pi@192.168.254.219:/home/pi/bluebacks
pi@192.168.254.219's password:
/home/XXXXXXX/Downloads/bluebacks: not a regular file

bluebacksはディレクトリなので、「not a regular file」とのワーニングです。

SCP(CP) コマンドを使用してディレクトリをコピーするには、相手がディレクトリの場合、オプション指定が必須なんです。

そのオプションが -r です。このオプションは、ディレクトリ全体(ディレクトリの中のファイルもコピーの対象となります)をコピーすることを示します。

このオプションを追加して再実行しました。

XXXXXXXXX@raspbian:~/Downloads/bluebacks $ scp -r /home/XXXXXXXX/Downloads/bluebacks pi@192.168.254.219:/home/pi/bluebacks
pi@192.168.254.219's password:
bb2-08-02-6legs-pca9685.py 100% 5394 5.3KB/s 00:00
bb2-08-01-zero-pca9685.py 100% 1273 1.2KB/s 00:00
bb2-03-02-dice.py 100% 1407 1.4KB/s 00:00
bb2-04-02-forcast.py 100% 986 1.0KB/s 00:00

うまくいきました。


ディレクトリ削除のコマンド

さて、ディレクトリのコピーが出来たので、今度はディレクトリの削除をやってみましょう。

エラー発生

ファイルが入っているディレクトリを削除する場合です。

pi@raspberrypi:~/bluebacks $ ls
bluebacks
pi@raspberrypi:~/bluebacks $ rmdir bluebacks/
rmdir: `bluebacks/' を削除できません: ディレクトリは空ではありません

単純に、rmdir コマンドを使用しましたが、上記のように rmdirはファイルが入っているディレクトリを削除できません。

それじゃ、コピーで使用した -r オプションをつけてやってみたら、「そんなオプションはねェっ!」て怒られちゃいました。

pi@raspberrypi:~/bluebacks $ rmdir -r bluebacks/
rmdir: 無効なオプション -- 'r'
Try 'rmdir --help' for more information.

ちゃんと調べないとダメですね。

正しいオプションで解決

ファイルが入っているディレクトリを削除するコマンドは rm、オプションは -r でした。

pi@raspberrypi:~/bluebacks $ rm -r bluebacks/
pi@raspberrypi:~/bluebacks $ ls
pi@raspberrypi:~/bluebacks $

このコマンドとオプションを使用することで、無事ディレクトリを削除できました。

注意事項

rm, rmdirコマンドでディレクトリやファイルを削除した場合、コマンドを実行後、復元はできません。

そのため、これらのコマンドを使用する際は慎重に実施しましょう!

重要なファイルやディレクトリの時は、それらのバックアップを取った後、rm,rmdir コマンドを実施することをお勧めします。

最後に

Linuxでディレクトリのコピーおよび削除を行う際の注意点を示しました。

コピーを行う際、ファイルと同じようにディレクトリを指定してコマンドを実行するとワーニングが出ます。

ディレクトリのコピーには、-rオプションが要ります。

ファイルの削除はrmdirで行いますが、ディレクトリの削除は、rmコマンドでオプション-rが必須なんです。

ウーン、難しい!

参考
scpコマンドでサーバー上のファイルorディレクトリをローカルに落としてくる
・【 rmdir 】 ディレクトリを削除する

スポンサーリンク
この記事を書いた人

60爺

60路を越え、RaspberryPi と出会い、その関係でブログ開設(2017/2~)となりました。始めてみると、コツコツやるのが性に合ってしまい、漢字の記事から家の補修・将棋・windows10関係・別名・言い方などジャンルを拡大して今に至ってます。まだまだ、元気なので新たな話題を見つけて皆様に提供できればと思っています。「プロフィールはこちら

コマンド

Posted by 60爺