1 votos

Ruta del archivo incompleto uso en terminal

¿En la terminal hay una manera para Terminal de adivinar un archivo basado en una ruta de archivo incompleto? ¿Por ejemplo: en vez de /Users/me/foo1/foo2/foo3/foo4/TargetFile , hay una forma de hacer /foo3/foo4/TargetFile ? Quiero ser capaz de acceder al archivo sin importar donde sea. Gracias.

2voto

Michael Zhou Puntos 167

Si la ruta del archivo es relativa al directorio actual de trabajo su puede usar:

find . -name targetfile

Podría envolver esto en una función de shell:

mylocate () {
    find . -name "$1"
}

# Usage
mylocate targetfile

En zsh usted puede utilizar la función de globstar:

printf '%s\n' **/targetfile

En ksh:

set -G
printf '%s\n' **/targetfile

En bash4:

shopt -s globstar
printf '%s\n' **/targetfile

1voto

Douglas Puntos 10417

Hay un par de cosas que usted puede hacer:

El uso de la ~

En el ejemplo citado, puede utilizar la tilde como un acceso directo a tu directorio home

~/foo1/foo2/foo3/foo4/TargetFile

Si desea acceder a un archivo "no importa de dónde es" crear un enlace simbólico y asegúrese de que está en su camino

PATH=$PATH:/Users/me
export $PATH
ln -s /Users/me/foo1/foo2/foo3/foo4/TargetFile /User/me/TargetFile`

(Usted puede poner la primera línea en su .bash_profile por lo que está disponible en cada sesión)

Su ruta de acceso puede ser cualquier lugar que desee - sólo estoy usando su directorio de inicio como un ejemplo.

1voto

Mark Puntos 6

Si sabe que el archivo de destino está en $ PATH del usuario, puede decir

 target=$(which TargetFile)
"$target" arg ...
 

De lo contrario, puede encontrar el archivo con

 while IFS= read -r possible_target; do
    if is_this possible_target_the_one_you_want; then
        target=$possible_target
        break
    fi
done < <(locate '*/TargetFile')
"$target" arg ...
 

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X