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

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

1.ディレクトリコピーでエラー

(1) エラー発生

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

(2) オプション追加で解決

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

うまくいきました。

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

(1) エラー発生

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

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.

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

(2) 正しいオプションで解決

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

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

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

但し、注意が必要です。

rm, rmdirコマンドでディレクトリやファイルを削除する場合、WindowsやMacのようにゴミ箱に移動するわけではないので、コマンドを実行後、復元はできません。

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

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