GNU/Linux >> Tutoriales Linux >  >> Linux

Encuentre archivos e imprima solo sus directorios principales

Me estoy perdiendo de algo. Seguramente todas estas expresiones regulares y/o bucles no son necesarios, una sola línea hará el trabajo. Además, las soluciones "for foo in $()" fallarán cuando haya espacios en los nombres de las rutas.

Simplemente use dirname dos veces con xargs, para obtener el padre del padre...

# make test case
mkdir -p /nfs/office/hht/info
mkdir -p /nfs/office/wee1/info
touch /nfs/office/hht/info/.user.log
touch /nfs/office/wee1/info/.user.log

# parent's parent approach
cd /nfs//office/ && find . -name '.user.log' | xargs -I{} dirname {} | xargs -I{} dirname {}

# alternative, have find print parent directory, so dirname only needed once...
cd /nfs//office/ && find . -name ".user.log" -printf "%h\n"  | xargs -I{} dirname {}

Produce

./hht
./wee1

Puede hacerlo fácilmente con las opciones de formato del -printf acción de find (ver man find ).

cd /nfs//office/ && find . -name '.user.log' -printf "%h\n"
./hht/info
./wee1/info

Desde la página del manual:

%h\n imprimirá la ruta de cada archivo en una nueva línea.

Tenga en cuenta que -printf es solo GNU. No funcionará en macOS (un sistema BSD).


for file in $(find /nfs/office -name .user.log -print)
do
    parent=$(dirname $(dirname $file))
    echo $parent
done

EDITAR:Lamento no haber querido el directorio de abuelos.


Linux
  1. Encuentra los archivos y directorios más grandes en Linux

  2. Eliminar archivos y directorios por sus nombres. ¿El fichero o directorio no existe?

  3. Linux Eliminar archivos y directorios

  4. Cómo encontrar y eliminar directorios y archivos vacíos en Unix

  5. ¿Cómo busco directorios y encuentro archivos que coincidan con expresiones regulares?

Cómo encontrar una cadena o palabra específica en archivos y directorios

Buscar comando en Linux (Buscar archivos y directorios)

Arrastre y suelte archivos y carpetas en la terminal para imprimir su ruta absoluta

3 formas de encontrar archivos y directorios en Linux

Encuentre archivos y directorios en Linux fácilmente

¿Cómo encuentro los archivos y totalizo sus tamaños?