¿Cómo puedo crear una carpeta con el nombre de la fecha actual en bash?

1

Así que estoy jugando en mi .bashrc haciendo diferentes alias y jugando con mi indicador. Ahora estoy intentando hacer un alias que se moverá a un directorio específico, creará un nuevo directorio basado en la fecha y creará un nuevo archivo. Todo en un alias. Esto es lo que he hecho ...

export DATE="$( date +%d-%b )"
alias hw='cd ~/Java/Homework/257; mkdir $DATE; cd $DATE; vim'

Ahora, si salgo y ejecuto hw Client.java , debería pasar a ~/Java/Homework/257/27-Jan/ y abrir un nuevo archivo llamado Client.java en vim. Todo funciona a la perfección, excepto que la variable de fecha no funciona bien. Me mueve al directorio ~ / Java / Homework / 257 y hace dos directorios. Una fecha llamada y otra llamada +% d-% b y coloca el archivo Client.java en el directorio de la fecha.

Pensé que la exportación de mi variable de fecha simplemente no estaba funcionando, pero cuando escribo $ DATE en el símbolo del sistema, aparece el 27 de enero como debería. Entonces, ¿alguien sabe lo que realmente podría estar causando esto? Un amigo mío hizo algo muy similar a esto utilizando una cadena de formato ligeramente diferente para la fecha y sus trabajos muy bien. Lo único que tengo diferente en mi computadora es bash-completed de homebrew pero no veo cómo afectaría eso a mi cita ...

    
pregunta CaldwellYSR 27.01.2012 - 08:23

3 respuestas

2
export DATE="$( date +%d-%b )"

Necesitas ejecutarlo realmente. De lo contrario, simplemente asigna un valor de cadena. Ya que faltan comillas alrededor de $DATE , se interpretarán como dos argumentos separados, date y +%d-%b .

    
respondido por el Daniel Beck 27.01.2012 - 08:44
2

Intenta definir ir como una función en .bashrc o .alias :

go() {
    DATE=$(date +%d-%b)
    mkdir "$DATE"
    cd "$DATE"
    vim "$1"
}

Esto garantiza que la fecha se determine cada vez que use el comando y no solo cuando inicie sesión / inicie bash.

    
respondido por el nohillside 27.01.2012 - 08:49
1

En la línea de las otras respuestas: debe ejecutar el comando de fecha. Probablemente, la solución más sencilla sería cambiar sus citas a marcas anteriores:

export DATE='date +%d-%b'
    
respondido por el cm2 27.01.2012 - 19:58

Lea otras preguntas en las etiquetas