Como copio arquivos com pontuação neles?

0


Eu tinha alguns arquivos (documentos de texto e páginas da web salvas) que eu estava copiando para um usb, selecionando-os todos pressionando Ctrl + C e depois Ctrl + V na unidade USB. Assim que começou a copiar, um diálogo iria aparecer dizendo que eu tinha que renomear ou pular um arquivo. Isso aconteceu em muitos dos arquivos e eu percebi que se eu quisesse copiar esses arquivos eu teria que tirar toda a pontuação no nome dos arquivos. Eu não sei o que fazer, parece que não tenho escolha a não ser fazer isso para todos esses arquivos. Como eu paro isso?

    
por Barra 19.01.2018 / 20:03

2 respostas

1

Você pode usar o script a seguir, presumindo que deseja copiar todos os arquivos de um diretório DIR1 para outro DIR2 em sua chave USB.

Se a seleção do seu arquivo for mais complicada, você poderá adaptar o script, por exemplo usando find .

Se você tiver outros caracteres ilegais, basta adicionar mais comandos sed .

#!/bin/bash 

DIR1=/path/to/origin 
DIR2=/path/to/target 

for file in 'ls $DIR1' 
do
   newfile='echo $file |  sed 's/\./_stop_/g' | sed 's/,/_comma_/g''
   cp $DIR1/$file $DIR2/$newfile 
done
    
por muclux 20.01.2018 / 09:47
0

Se você tiver o mesmo sistema de arquivos na partição de origem (sua unidade interna) e na partição de destino (seu USB pendrive), a cópia deve funcionar, pelo menos se você colocar aspas nos nomes dos arquivos.

Mas é uma boa idéia evitar caracteres especiais em nomes de arquivos (e quero dizer caracteres com um significado especial nos sistemas de arquivos, bem como em programas shell e sistemas operacionais que são ou serão usados).

O link a seguir ajuda a identificar quais caracteres podem ser usados e quais caracteres devem ser evitados,

superusuário .com / questions / 358855 / what-characters-are-safe-in-cross-platform-file-names-for-linux-windows-e-os

% bl0ck_qu0te%     
por sudodus 21.01.2018 / 09:38