2016-05-27 13 views
0

Ich möchte die unnötige Information "Berechtigung verweigert" ausfiltern. sind diese Ausgaben von Befehl „find -type f -name sources.listLinux find Befehlserlaubnis verweigert

find: './run/lxcfs': Permission denied 
find: './run/sudo': Permission denied 
find: './run/lvm': Permission denied 
find: './tmp/systemd-private-99eef94819d84080adc7df3e60efee5b-systemd-timesyncd.service-HE48k9': Permission denied 
find: './lost+found': Permission denied 
find: './dev/vboxusb': Permission denied 
find: './root': Permission denied 
./etc/apt/sources.list 
find: './etc/sudoers.d': Permission denied 

I „! -readable -prune“ in Verbindung mit dem find Befehl wie oben zu unterdrücken, die „Zugriff verweigert“ Informationen, aber es funktioniert immer noch nicht zu nutzen versucht.

+1

Mögliche Duplikat [Wie kann ich alle „Erlaubnis ausschließen verweigert "Nachrichten von" finden "?" (http://stackoverflow.com/questions/762348/how-can-i-exclude-all-permission-denied-messages-from-find) –

Antwort

0

versuchen die folgende

find -type f -name sources.list 2>/dev/null 

Dieser stderr Ausgabestrom umleitet, die alle Fehler melden verwendet wird, einschließlich der „Zugriff verweigert“ ein, Gerät auf null.

+1

Vielen Dank, statt Umleiten des Streams, ist es möglich, diese Ordner zu umgehen, die ich nicht Leseberechtigung habe? – jianrui

+0

Nicht sicher, aber, afaik, nein! – Vtik

-1

Zuerst können Sie die ACL von Ordnern mit Hilfe überprüfen von

getfacl -R /foldername 

Erlaubnis lesen, wenn gibt es zu bestimmten Ordner, dann führen;

find foldername -type f -name sources.list 

sonst überspringen Befehl

3

So etwas sollte funktionieren

find -type d ! -readable -prune -o -type f -name sources.list 
1

Das funktionierte für mich folgendes:

find/-mount -readable -name "<whatever>" -print 

hier nur wollte ich das Root-Dateisystem suchen und nicht in eines der angehängten Dateisysteme absteigen. Daher -mount.

Die Problemdateien, die Fehler ausgaben, waren nicht lesbar (was zu "Berechtigung verweigert" führte). Daher lesbar.

Der Rest ist offensichtlich.

(Anmerkung: In Ubuntu 16.04 die Dateien in/var/lib/lxcfs sind nicht lesbar, auch für root Die oben löste das Problem für mich..)