linux - todos - Alias encontrar directorio en Unix
mover todos los archivos de un directorio a otro en linux (1)
Intenté algo como:
alias fdi ''find . -type d -iname "*/!^*"''
pero esto solo busca nombres exactos pasados como argumento.
fdi abc
solo producirá:
./d/abc
no esta:
./d/greabcyup
No solo estoy buscando el nombre exacto. También debería mostrar ./d/greabcyup
Actualización: lo hice
echo $0
tcsh
¿Es este c-shell o tcsh?
Verifiqué correctamente con lunix, en pocas palabras,! !^
Es la primera palabra en la línea de comando actual, así que no creo que esté haciendo lo que usted quiere. Puede verificar esa teoría por usted mismo, con echo abc def !^
Desde cmd-line. (No tengo un csh a mano).
Pero está claro que cuando se crea el alias, no se obtiene la primera palabra (alias) O la primera palabra del alias (buscar) incrustado en el alias. Probablemente se trate del orden de evaluación de csh.
En general, cualquier alias en la mayoría de las shells (no solo csh) no puede tomar argumentos. Anexará todo lo que esté incluido en la invocación al final. Así que su alias se expande, con el argumento abc como
find . -type d -iname abc
Y los resultados que obtienes, respaldan eso. (Es posible que vea algo útil al activar la depuración csh, cambiando su línea hash-bang superior a #!/bin/csh -vx
)
Esta es la razón por la cual otras conchas tienen funciones,
function fdi() {
find . -type d -iname "$@"
}
Si no puede usar otro intérprete de comandos debido a la política, (bash, ksh, zsh son todos los lenguajes de programación potentes) y va a usar csh regularmente, asegúrese de obtener una copia de la ''Guía de campo del shell de Unix C , Gail y Paul Anderson. Un libro realmente excepcionalmente bien escrito.
IHTH.