Я использую Dropbox, и я волную со многими файлами как:
prefs (противоречивая копия дома 20.07.2009) .js
То, что я хотел бы сделать, является находкой вся "противоречивая копия..." файлы, и затем сравните каждого с ее непротиворечивой версией.
Например, следующая команда дает мне результат:
$ find . -name "*onflict*" -exec ls -ld {} \;
-rw-r--r-- 1 eric eric 24203 2009-07-19 14:42 ./prefs (home's conflicted copy 2009-07-20).js
но я хотел бы вывод как:
-rw-r--r-- 1 eric eric 24429 2009-07-21 11:43 prefs.js
-rw-r--r-- 1 eric eric 24203 2009-07-19 14:42 prefs (home's conflicted copy 2009-07-20).js
и затем я могу решить то, что я хочу сделать с противоречивой копией. Какие-либо идеи?
Я выяснил что-то, что кажется работам, но я приветствовал бы предложения для улучшения его, включая создание его инструмент для очистки:
find . -name "*onflict*" | while read name; do ls -ld "$name"; ls -ld "${name/ (*onflict*)/}"; echo -n "$name" | xargs -0 -p rm ; echo ; done
В более легко считанном и введенном формате:
find . -name "*onflict*" | \
while read name; do
ls -ld "$name"
ls -ld "${name/ (*onflict*)/}"
echo -n "$name" | xargs -0 -p rm
echo
done
Ссылки:
Используя оболочку для "дробления" по результатам начальной команды находки - pipemill
http://en.wikipedia.org/wiki/Pipeline_ (Unix) #Pipemill
Управление строками в оболочке
http://www.linuxjournal.com/article/8919
http://tldp.org/LDP/abs/html/string-manipulation.html#SUBSTRREPL00
Используя xargs
http://en.wikipedia.org/wiki/Xargs
http://ss64.com/bash/xargs.html
После соответствия противоречивому имени файла используйте регулярное выражение, чтобы заменить круглую скобку и пространство со звездой и сделать, например:
ls -d "prefs*.js"