Mac vs Linux (per il ciclo si comporta diversamente)


1

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?


Speravo che anche gli utenti MAC arrivassero a SE. Potrebbe essere che su alcune distribuzioni Linux agisca lo stesso poiché è uno script bash di cui stiamo parlando. Non è specifico per MAC, è più come Bash specifico nel mio modo di pensare, ma come desideri. Spero solo che qualcuno sappia qualcosa su questo o almeno possa dirmi a cosa prestare attenzione.
Bert

Questo suona come un incidente strano per me. cp dovrebbe fare una copia byte per byte, indipendentemente dal sistema operativo o dal programma da cui è invocato. Questo comportamento è coerente / riproducibile?
Siguza

2
In altre notizie, è possibile riordinare quello script semplicemente facendo tutto in un 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.
py4on

Siguza: sì, lo è. 4 MAC lo stanno facendo.
Bert

Hai verificato che la parola è corretta prima la copia? Puoi pubblicare screenshot?
Allan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.