Você deve verificar se o diretório existe antes de tentar copiá-lo:
#!/usr/bin/env bash
IFS=','
while read OS HS
do
mkdir -p $HS
cp -av $OS $HS
done < SlingManifest.csv
Eu tenho um CSV com duas colunas. Coluna 1 são nomes de arquivos completos. Coluna dois são nomes de pastas. Eu preciso copiar o arquivo na coluna 1 para a pasta na coluna 2. Ambos os arquivos e pastas estão no mesmo diretório principal. Eu tenho o seguinte script:
IFS=','
while read OS HS
do
cp -av $OS $HS
done < SlingManifest.csv
Isso diz que está funcionando, mas quando eu verifico a pasta, recebo um arquivo sem nome. O conteúdo do arquivo está correto, mas o arquivo não tem nome e apenas um arquivo existe em cada pasta. Como posso evitar isso?
Exemplo de vim de CSV:
TinyHouseNation_600SqFtPowercouplesRetreat_190473_SLING.xml,./2_25_17/
BuyingTheView_RuralCasaNiagara_192555_SLING.xml,./2_26_17/
BuyingTheView_SexyHideAwayToronto_192546_SLING.xml,./2_26_17/
LifetimeOriginalMovie_LoveByThe10thDate_188563_SLING.xml,./2_27_17/
Special_10thDateGirlsNightIn_196744_SLING.xml,./2_27_17/
Special_SniperInsideTheCrosshairs_49112_SLING.xml,./2_27_17/
Você deve verificar se o diretório existe antes de tentar copiá-lo:
#!/usr/bin/env bash
IFS=','
while read OS HS
do
mkdir -p $HS
cp -av $OS $HS
done < SlingManifest.csv
Eu percebi isso. Eu usei um loop para fazer arquivos de texto para cada subpasta, então usei um novo loop aninhado para copiar o conteúdo do arquivo de texto na pasta apropriada. Trabalhou.