Dentro do diretório "Downloads", tenho dois diretórios v1 e v2. A saída do script a seguir é colocada em v1 em vez de "Downloads". Por quê? Estou executando o script do diretório "Downloads".
#!/usr/bin/env bash
# Full path to v1
v1='/mnt/c/Users/myusername/Downloads/v1'
# Full path to v2
v2='/mnt/c/Users/myusername/Downloads/v2'
# Loop through files in v1 and compare with v2
for file in "$v1"/*
do
if [ -f "$file" ]; then
fileInv2=$(find "$v2" -type f -iname "$(basename "$file")")
if [ -f "$fileInv2" ]; then
sort "$file" "$fileInv2" | uniq -u > "${file}_Diff_Output.txt"
fi
fi
done
Q2) É possível criar uma pasta chamada "...../Downloads/output" e ter os arquivos de saída redirecionados para a pasta de saída. Os quatro pontos significam que o caminho principal pode ser qualquer coisa. Como estou executando o script da pasta "Downloads", quero que os arquivos de saída vão para "...../Downloads/output"
O arquivo de saída está sendo gravado no
v1
diretório porque você especificou a saída comoe
${file}
é o caminho completo para um arquivo de entrada que está emv1
(defor file in "$v1"/*
).Você pode especificar um arquivo de saída em outro diretório com uma construção como
Talvez você queira atribuir
$(basename "$file")
a outra variável, para maior clareza e simplicidade.