Linuxでファイルをコピー、読み取り、削除するコマンドは何ですか?

Linuxでファイルをコピー、読み取り、削除するコマンドは何ですか?

/var/log/ルートディレクトリ()の一部のファイルをホームディレクトリ()にコピーしてから、home/test/copyfromlogs/ルートディレクトリからそのファイルを削除したいと思います。

コピーしたいファイルはにあります/var/log/。ルートディレクトリがいっぱいで、そこから次のファイルを削除したいと思います。 。

btmp-20200401 >> 894M;secure-20200322 >> 187Msecure-20200329 >> 235Msecure-20200405 >> 180Msecure-20200412 >> 119M

home必要な場合に備えて、このファイルをバックアップするために以下のディレクトリを作成しました。新しいディレクトリのフルパスは「/home/test/copyoflogfiles/」です。

私は新しい学習者です。聞きたい

  1. 次のコマンドが正しい場合からにbtmp-20200401コピーする場合、正しいコマンドは何ですか?そうでない場合、正しいコマンドは何ですか?/var/log/home/test/copyoflogfiles/

    cp /var/log/btmp-20200401 /home/test/copyoflogfiles/

  2. コピーコマンドを実行するときの現在のディレクトリは何ですか?私がその中にいるとしましょう/home/test/copyoflogfiles/。この場合、コマンドは異なりますか?

  3. ディレクトリから単一のファイルを削除するコマンドが何であるかを教えてください。ファイルをコピーして削除btmp-20200401したいです。/var/log/

フレンドリーな安否

答え1

質問1:あなたのコマンドは正しいです。

cp /var/log/btmp-20200401 /home/test/copyoflogfiles/

ファイルをコピーするためのファイルシステム権限がない場合は、sudo次のコマンドを使用して権限を増やすことができます。

sudo cp /var/log/btmp-20200401 /home/test/copyoflogfiles/

質問2:

cpフルパスを使用している場合は、すべてのディレクトリから別のディレクトリにコマンドを使用できるため、別のディレクトリからコマンドを実行できます。

質問3:

rm /var/log/btmp-20200401

ファイルが削除され、そのファイルが利用可能であることを確認するためにrm -i filename正しいファイルを入力するように求められます。

ただし、次のコマンドに従うよりmvも、このコマンドを使用する方が良いかもしれません。cprm

したがって、コマンドは次のように変更されます。

mv /var/log/btmp-20200401 /home/test/copyoflogfiles/

ファイルをコピーして削除するのではなく、ファイルを移動します。

答え2

  1. cp、、、 - などのコマンドを実行してrmも、mv現在の作業ディレクトリは変更されません。

ここいくつかの便利なコマンドがあります

答え3

また、権限(ユーザー、グループ、世界)および所有権に注意を払ってください。これが /var/log の下のファイルがルートでしか読めないファイルではsudo cpなく、1 つの答えを使用する理由です。cpこの場合、sudo cp権限もコピーされ、所有権はrootユーザーとして設定されます。したがって、/var/log のファイルはユーザー apache、グループ apache が所有し、600 のアクセス権を持ち (グループや残りの世界ではなく所有者だけが読み取ることができる)、最終的に root が所有します。また、ユーザーディレクトリからrootとしてのみ読み取ることができます。

したがって、ターゲットディレクトリの所有権を使用および/または確認し、ls -l問題を解決できます。これは、所有者が異なるフォルダに異なる権限を持つログファイルを公開してセキュリティリスクがあると考えています。適切なアーカイブおよび/または削除を検討してください。sudo chownsudo chmod

関連情報