Когда я запускаю shasum из нескольких каталогов в одном файле, я получаю то, что ожидаю и в конечном итоге хочу:
shasum 2010/Whitmore/The\ Astrophysical\ Journal\ 2010\ Whitmore.pdf
5da84767c2301f29ed3b7db7542167150fe63b8b 2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
Когда я запускаю find из того же каталога, в нем перечислены файлы без проблем:
find 2010/Whitmore/* | xargs -0
2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
Я пытался написать bash-скрипт (или просто одну строку), который будет возвращать отдельный shasum для каждого файла, найденного функцией find (их много), вместе с его именем файла. Передача имен файлов в shasum не работает ни в одной из комбинаций, которые я пробовал.
Я ожидаю, что проблема связана с пробелами в имени файла, но после поиска в Google, пытаясь найти несколько комбинаций find / xargs / ls (и различные комбинации того, что, похоже, работает для других людей, включая флаги -print0), я до сих пор не могу найти способ запустить shasum для каждого файла в этих каталогах.
Пример вывода, который я хочу (при условии, что под Whitmore есть 2 файла) на случай, если есть совершенно другой способ получить этот результат:
find 2010/Whitmore/* | xargs -0 | shasum
5da84767c2301f29ed3b7db7542167150fe63b8b 2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
4d2b0a6da00473133b4617d67d9249da3d05cc19 2010/Whitmore/arXiv 2010 Whitmore.pdf
Я на Mac OSX 10.6