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

2017年12月18日

ラズパイで 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
スポンサーリンク

オプション追加で解決

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はファイルが入っているディレクトリを削除できません。

調子に乗って、SCP で使用した -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 コマンドを実施することをお勧めします。

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

スポンサーリンク

コマンド

Posted by mizutan