問題ID:22248

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-5-3 19:36
kogeclear  新米   投稿数: 3
cpコマンドについてです。
強制的に上書きする際には、-fオプションということですが、-fをつけずにコマンドを実行した場合にも強制的に上書きされたような気がするのですが、-fを付けた場合とつけない場合で違いはあるのでしょうか。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-5-3 22:37
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
-fを付けた場合とつけない場合で違いはあるのでしょうか。
こんな違いがあります。
$ touch testfile
$ chmod 000 testfile
$ ls -l testfile
----------.  1 testuser testuser     0 May  3 22:30 testfile
$ cp /etc/passwd testfile
cp: cannot create regular file ‘testfile’: Permission denied
$ cp -f /etc/passwd testfile
$ ls -l testfile
-rw-r--r--. 1 testuser testuser 2113 May  3 22:31 testfile
厳密には、「cp -f」は「だめだったら削除してもう一回やってみる」なんですよね。
引用:
$ man cp
(略)
-f, --force
if an existing destination file cannot be opened, remove it and try again (this option is
ignored when the -n option is also used)
そういう意味でも、-fオプションの有無で動作は変わるので違いはある、と言えますね。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-5-3 23:19
kogeclear  新米   投稿数: 3
詳しくありがとうございました!
単純に同名のファイルでしか試していなかったので気付きませんでしたが、-fをつけない場合には、アクセス権の関係などで上書きできない場合もあるのですね。

-fをつけることで、アクセス権も突破して強制的に上書きすることができることがわかりました。

ありがとうございます!

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.