フォルダに/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
答え2
同じフォルダに同じ名前の2つのファイルを含めることはできません。見えない文字(末尾のスペースなど)がある可能性があります。
私の提案は、名前requests
を変更してrequests.real
からインタラクティブな削除を実行することです。不要な名前を削除することを選択してから(必要に応じて)、ワイルドカードを使用して他の名前を正しい名前に置き換えることができます。
mv requests requests.real # STOP if this fails
mv requests.archives KEEP.archives # Temporary
rm -i req* # Interactive delete: "y" to delete, "n" to skip
mv req* requests # Rename whatever's left that begins "req"
mv KEEP.archives requests.archives # Put this one back again