読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】cp でディレクトリをコピーしたら omitting directory。cp・mv・rm・mkdir・rmdir・touch の基本【LPICレベル1】

19レスカテゴリ:Linux
1: 名無しさん

cp a d2 したら cp: -r not specified; omitting directory 'a' って言われてコピーされへんかった

2: 名無しさん

前提のおさらい。コマンドは「コマンド オプション 引数」を空白で区切り、空白を含むファイル名はクォートで囲む

3: 名無しさん

>>1
cp はそのままだとファイルしかコピーしない。ディレクトリを中身ごとコピーするなら -r(-R も同じ)
cp -r a d2

4: 名無しさん

>>3
cp のよく使うオプション(cp --help で確認)
-i 上書きの前に確かめる
-f 上書きできないときは消してからコピー
-p パーミッション・所有者・タイムスタンプを保つ
-a -dR --preserve=all と同じ。まるごと写すとき
-u コピー先が古いか、ないときだけ

5: 名無しさん

>>4
コピー先が既にあるディレクトリなら、その中にコピーされる。ないなら、その名前でコピーされる

6: 名無しさん

mv はどうなん?

7: 名無しさん

>>6
移動と名前の変更を同じコマンドでやる。mv d1 d3 は d3 がなければ名前の変更、d3 がディレクトリならその中へ移動。ディレクトリでも -r は要らない

8: 名無しさん

>>7
mv にも -i(上書きの前に確かめる)、-f(確かめない)、-n(上書きしない)、-u がある

9: 名無しさん

>>1
消すほうは?

10: 名無しさん

>>9
rm ファイル。ディレクトリは rm -r、確認なしは -f、1つずつ確かめるのは -i。rm -rf は確認なしで中身ごと消えるから、引数をよく見てから

11: 名無しさん

>>10
rmdir は空のディレクトリしか消せない。中にファイルがあると Directory not empty

12: 名無しさん

>>1
深い階層を一度に作りたいときは?

13: 名無しさん

>>12
mkdir a/b/c は a がないと No such file or directory で失敗する。mkdir -p a/b/c なら途中も作る(あってもエラーにしない)
-m で作るときのパーミッションも指定できる

14: 名無しさん

>>11
rmdir -p a/b/c は c、b、a の順に消していって、空でないところで止まる

15: 名無しさん

>>1
touch は何に使うん?

16: 名無しさん

>>15
ファイルのタイムスタンプを今の時刻にする。ファイルがなければ空のファイルを作る。-c で作らない、-a はアクセス時刻だけ、-m は変更時刻だけ、-t や -d で時刻を指定

17: 名無しさん

>>1
ls もオプション多いよな

18: 名無しさん

>>17
-l 詳しく、-a ドットで始まるものも、-d ディレクトリそのもの、-h サイズを K・M で、-R 下の階層も、-t 新しい順、-S 大きい順、-i inode 番号、-F 種類の印(/ や *)

19: 名無しさん

>>3
ディレクトリは cp -r と rm -r、mv はそのまま。rmdir は空だけ、mkdir -p で途中も。これで覚えるわ

管理人のひとこと