同じフォルダに同じ名前の2つのファイル - 1つだけを削除する必要がありますが、両方を削除する必要はありません。

同じフォルダに同じ名前の2つのファイル - 1つだけを削除する必要がありますが、両方を削除する必要はありません。

フォルダに/var/spool/lp/logs「requests」というファイルが2つあるようです。 1つはlpに属し、もう1つはrootに属します。

ルートが所有する要求ファイルを削除する必要があります。これをどのように参照しますか?

以下はコマンドの出力ですls -l

-rw-r--r--   1 root     sys            0 Jan 30  2014 lp                 
-rw-rw----   1 root     lp          6584 Nov  4 06:10 lpsched            
-rw-rw----   1 lp       lp          3365 Dec 14 10:56 requests           
-rw-r--r--   1 root     sys      1668416 Dec 14 10:41 requests           
drwxr-xr-x   2 root     sys         1024 Sep 30  2013 requests.archives  

ベストアンサー1

GNU lsがある場合は、次をls -lQ実行して参照されているファイル名のバージョンを表示できます。

$ ls -lQ
total 0
-rw-r--r--. 1 user group 0 Dec 14 14:32 "requests"
-rw-r--r--. 1 user group 0 Dec 14 14:32 "requests "

特定のファイルを削除するには、まず次のように対応するinode番号を見つけますls -li

$ touch 'requests' 'requests '
$ ls -li
total 0
440 -rw-r--r--. 1 user group 0 Dec 14 14:32 requests
441 -rw-r--r--. 1 user group 0 Dec 14 14:32 requests

これには2つの類似ファイルがあります。 1つはinode 440、もう1つはinode 441(左の列)です。

あなたの場合、rootが所有しているファイルを見つけて、対応するinode番号を取得してください。-xdev(または-mount)オプションは、find現在のディレクトリにマウントされているファイルシステムがある場合は、そのサブファイルシステムから一致するファイルをキャプチャしないように同じファイルシステムを維持することを意味します。

それから:

$ find . -inum 441 -xdev -user root -ls
441    0 -rw-r--r--   1 user group 0 Dec 14 14:32 ./requests\

空白文字はfind末尾に引用されています。

削除:

$ find . -inum 441 -xdev -user root -delete  # GNU find

または

$ find . -inum 441 -xdev -user root -exec rm {} \;  # otherwise

おすすめ記事