Outra opção (python), que oferece um pouco de um relatório "sofisticado":
----------------------------------------------------------
Newly copied from /home/jacob/map 1 to /home/jacob/map 2:
- Naamloos document
- pscript_2.py
- test123
- monkey_out.txt
----------------------------------------------------------
Unique files in /home/jacob/map 2:
- file_in_targetfolder
----------------------------------------------------------
Ele faz o que você descreve:
- copia arquivos da pasta A para B se eles ainda não existirem em B
- reporta arquivos em B, que não estão em A
O script
#!/usr/bin/env python3
import sys
import os
import shutil
folder_1 = sys.argv[1]; folder_2 = sys.argv[2]
files_1 = os.listdir(folder_1); files_2 = os.listdir(folder_2)
# make the length (n) of separating line "smart"
s = "\nNewly copied from "+folder_1+" to "+folder_2+':'; n = len(s)
print("\n"+n*"-"+s)
for f in files_1:
f1 = folder_1+"/"+f
if all([os.path.isfile(f1), not f in files_2]):
shutil.copyfile(f1, folder_2+"/"+f)
print("-",f)
print(n*"-"+"\nUnique files in "+folder_2+":")
for f in files_2:
f2 = folder_2+"/"+f
if all([os.path.isfile(f2), not f in files_1]):
print("-",f)
print(n*"-")
Como configurar
-
Copie o script em um arquivo vazio, salve-o como
sync_report.py
-
Teste - execute-o pelo comando:
python3 /path/to/sync_report.py <folder_a> <folder_b>
Se os diretórios contiverem espaços, coloque-os entre aspas simples.
-
Se tudo funcionar bem, use-o como acima ou:
- torna o script executável
-
adicione o seguinte comando a uma tecla de atalho:
gnome-terminal -e "'/path/to/sync_report.py' '/path/to/folder_a' '/path/to/folder_b'"
Escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando.
Então, quando a combinação de teclas é pressionada:
Não deixe que o fundo distraia você, meu terminal é semitransparente. :)
Como alternativa, como mencionado por @ParanoidPanda (obrigado por mencionar), adicione-o ao seu arquivo ~/.bashrc
. Crie um alias que chame o script:
alias <nameofalias>='python3 /path/to/sync_report.py <folder_a> <folder_b>'