Question Imprimez le chemin complet des fichiers et des tailles avec find in Linux


Voici les spécifications: Recherchez tous les fichiers dans / modifiés après l'heure de modification de / tmp / test, excluez / proc et / sys de la recherche et imprimez le chemin complet du fichier avec la taille lisible par l'homme. Voici ce que j'ai jusqu'ici:

find / \( -path /proc -o -path /sys \) -prune -o -newer /tmp/test -exec ls -lh {} \; | less

Le problème est que le chemin complet n'est pas imprimé. Malheureusement, ls ne permet pas d'imprimer le chemin complet! Et toutes les solutions que j'ai trouvées montrant comment imprimer le chemin complet suggèrent d'utiliser find. : |

Des idées? Merci!


2
2018-06-25 01:49


origine




Réponses:


Au lieu de -exec ls -lh {} \; vous pouvez également utiliser le printf option:

find / \( -path /proc -o -path /sys \) -prune -o -newer /tmp/test -printf "%s %p\n" | less

Bien que cela imprimera simplement la taille en octets et non dans le joli format lisible par l'homme ls les soutiens.


3
2018-06-25 07:05



+1 pour POSIX et nonls Solution. - l0b0


Ajouter -d à la commande ls.

find / \( -path /proc -o -path /sys \) -prune -o -newer /tmp/test -exec ls -lhd {} \; | less

Cela résoudra également le problème que vous deviez avoir avec les fichiers apparaissant deux fois dans votre liste.


1
2018-06-25 01:57