Ho bisogno del tuo aiuto in una domanda straordinaria. Ho la seguente riga nel mio script bash.
for f in $(find ./ -name '*.pdf' -or -name '*.indd' -or -name '*.indb'); do cp "$f" ./Cleaned; done
Come puoi vedere, analizza la cartella corrente per i file PDF, INDD e INDB e li copia nella cartella Cleaned.
Ora sto lavorando su Fedora 25 Workstation e gli script funzionano bene. Su Fedora 22+ funziona tutto. Su Mac OS X 10.9.5 fa la stessa cosa.
Il problema è: c'è un file PDF che è stato generato da Adobe InDesign e in una pagina, una parola particolare è incasinata dopo la copia.
Le opere assomigliano a: Másnapos Come appare dopo la copia: Másnap ?? Se seleziono il lavoro e lo copio in un file TXT, sembra che: ?????? os (così l'oposite)
Ho capito, se copio il file sul Mac semplicemente con la posizione del file cp, allora tutto va bene. Se scruto la cartella e la copio in questo modo, solo questo file ha questo problema minore.
Si prega di notare che la parola è ancora nel PDF altrove, e lì va bene.
Oh, e su altri MAC con la stessa versione, funziona .... quale è il f .... ork?
Quindi la mia domanda: in che modo una semplice copia in un ciclo per incasinare un file PDF, ma solo in una parola e solo una volta nell'intero documento su alcuni Mac OS X, ma non su alcuna versione di Fedora e CentOS?
cp
dovrebbe fare una copia byte per byte, indipendentemente dal sistema operativo o dal programma da cui è invocato. Questo comportamento è coerente / riproducibile?
find
one-liner: find . -iname "*.pdf" -or -iname "*.indd" -or -iname "*.indb" -exec cp {} Cleaned/ \;
Uso di iname
assicurerà inoltre che prenderai i file con a .PDF
estensione, non solo a .pdf
(lo stesso vale per le altre due estensioni). Con questo non hai bisogno del ciclo non necessario che stai usando al momento.