varios todos subdirectorios otro mover los listar funciones directorios directorio crear copiar consola comandos carpeta archivos archivo linux find alias csh tcsh

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.