Como copiar o diretório inicial no diretório inicial?

1

Eu preciso fazer uma cópia do meu diretório pessoal e colocar essa cópia no mesmo diretório inicial. O código de saída do comando deve ser 0 . Atualmente, meu diretório inicial não contém nenhum outro diretório.

Existe uma maneira melhor do que a seguinte? (pwd é o diretório inicial)

mkdir /tmp/temp && cp * /tmp/temp && mv /tmp/temp .
    
por Victor Lyuboslavsky 29.12.2013 / 19:57

3 respostas

5

Chame o rsync e exclua o diretório em que você está colocando a cópia.

cd
mkdir copy
rsync -a --exclude=copy . copy

Copiar * exclui arquivos de ponto (arquivos cujo nome começa com . ), que são comuns e importantes em um diretório inicial.

    
por 29.12.2013 / 21:18
1

Isso deixará de copiar qualquer arquivo .* que possa existir no seu diretório pessoal. Eu provavelmente usaria rsync da seguinte forma:

$ mkdir /tmp/temp && rsync -av . /tmp/temp/. && rsync -av /tmp/temp/ .

Não estou muito entusiasmado em fazer isso como uma cadeia de cmd1 && cmd2 && cmd3 , já que problemas podem ocorrer, mas se você tiver cuidado, tudo bem.

    
por 29.12.2013 / 20:09
1

Que tal criar um diretório temporário em seu diretório home e copiá-lo?

mkdir tmp
for item in *
do
    if [[ "$item" != tmp ]]
    then 
        cp "$item" tmp
    fi
done

Esta é uma alternativa, mas não posso dizer se é melhor.

    
por 29.12.2013 / 20:09