Shell Script para renomear o diretório de trabalho atual com nome próprio

0

Se o diretório atual for DIR/ e o novo nome project1/ for passado pelo argumento, o nome do diretório atual deverá ser substituído por project1 .

    
por user241807 21.07.2017 / 12:11

3 respostas

3

Se você renomear o diretório de trabalho atual, a maioria das shells não notará a alteração (na variável $PWD ou no prompt, por exemplo), então seria melhor usar uma função em vez de um script para que você pode notificar o shell da alteração depois de fazer isso, como:

rename_cwd() {
  cd . || return
  new_dir=${PWD%/*}/$1
  mv -- "$PWD" "$new_dir" &&
    cd -- "$new_dir"
}

Isso pressupõe que o diretório atual não é / e que o diretório de destino ainda não existe (veja a opção -T com o GNU mv para melhorar o assunto nesse caso).

Observe que, em algumas circunstâncias, $PWD pode estar fora de sincronia com a realidade, portanto, o código acima pode acabar alterando o diretório de trabalho atual. O cd . está lá para reduzir a probabilidade dele em algumas camadas.

    
por 21.07.2017 / 12:46
1

Eu comprei abaixo do código

mv -T "$PWD" "../$1"

Argumento passado como

./rename_pwd.sh dir1

Então

cd ..

ls

Mostra

dir1
    
por 21.07.2017 / 13:29
-2

Eu escrevi isso há muito tempo. É um pequeno roteiro, mas vai renomear as coisas para você.

    
por 21.07.2017 / 15:34