Uso el comando find para buscar en estructuras de directorios anidadas y grandes.
En el resultado-salida a veces se incluye una barra doble (//).
Ejemplo (después de "Descargas"):
#> find ~/Downloads/ -iregex ".*some.*"
/Users/michael/Downloads//subDirectory/some_file.pdf
Primero pensé que marcaría el directorio de trabajo actual. Pero ese no es el caso.
¿Cuál es el significado de este doble corte?
Por lo general, copio el resultado en el portapapeles, cambio al buscador. Luego "shift" + "comando" + "g" y pegando la ruta (hasta el archivo) en el cuadro. Para que se abra el directorio que lo contiene.
Funciona bien. Pero la doble barra tengo que eliminarla manualmente.
Por lo tanto: ¿Cómo puedo evitarlo?
Respuestas:
find
es bastante literal Cuando le dice que busque dentro de "~ / Downloads /", lo usa (incluida la barra diagonal final) como prefijo para lo que encuentre. Como hay una barra oblicua innecesaria e irrelevante al final del camino que le diste, terminas con una barra extra innecesaria e irrelevante en la salida.Solución: elimine el "/" final del directorio de búsqueda:
fuente
Significa que está utilizando un extraño hallazgo antiguo de BSD.
De hecho, puede omitir la barra diagonal final en su comando original, pero dado que se agrega automáticamente a través de la finalización de la pestaña (que definitivamente debe hacer el mayor uso posible), y dado que la barra diagonal final se usa en muchos lugares para asegurarse de que se trata de un directorio y no de un nombre de archivo, omitirlo es contradictorio y tonto.
En cambio, sugiero hacer una de estas otras cosas:
a) Haga una envoltura para encontrar que las tuberías sed: | sed 's @ // @ / @'
b) Instale findutils de GNU con 'brew install findutils' y luego use 'gfind' directamente, alias 'find' a 'gfind', o agregue / usr / local / opt / findutils / libexec / gnubin a su ruta (que también agrega GNU findutils '' localizar ',' updatedb 'y' xargs ').
c) Cambie a un sistema operativo GNU / Linux adecuado que no hubiera tenido este problema (y otros miles) en primer lugar. :pags
fuente
set mark-directories off
a tu.inputrc
y estás listo para ir De uno de esos viejos tipos de BSD.