Я выполнил следующую команду, чтобы переместить некоторые каталоги в папку "build_tools", однако результат оказался не таким, как я ожидал.
ls -l | grep 2014-03 | awk '{if ($8!=build_tools) print $8}' | xargs mkdir build_tools/{} && mv {}/ build_tools/{}/
Он переместил папку "build_tools" в одну из папок, созданных awk (zlib) вместе с остальными каталогами, а затем застрял с этим сообщением:
mkdir: no se puede crear el directorio «zlib»: El archivo ya existe
Может кто-нибудь пролить свет на мою ошибку?
РЕДАКТИРОВАТЬ 1:
Вывод ls -l дает мне:
drwxr-xr-x 3 poissonbreaker poissonbreaker 4096 2011-05-02 09:58 antlr3.2
-rw-r--r-- 1 poissonbreaker poissonbreaker 318588 2011-05-17 16:21 AppFramework-1.03.jar
-rw-r--r-- 1 poissonbreaker poissonbreaker 0 2014-03-04 09:53 awk
drwxr-xr-x 4 poissonbreaker poissonbreaker 4096 2013-01-11 23:13 clutter-sharp
-rw-r--r-- 1 poissonbreaker poissonbreaker 429 2014-01-14 09:49 Dependencias
Я просто хочу получить файлы с полем даты ($ 6), совпадающим с 2014-03, поэтому я делаю простой grep из этого (ни один файл в каталоге не имеет в качестве имени файла этот шаблон):
ls -l | grep 2014-03
Который дает:
-rw-r--r-- 1 poissonbreaker poissonbreaker 0 2014-03-04 09:53 awk
-rw-r--r-- 1 poissonbreaker poissonbreaker 429 2014-01-14 09:49 Dependencias
Затем я получаю поле имени файла ($ 8) каждого файла через awk для окончательного перемещения в папку build_tools (на данный момент я знаю, в чем была моя ошибка - в этот день также была создана папка build_tools:S). Я оставлю этот вопрос здесь, в случае, если некоторые части будут полезны для всех.
РЕДАКТИРОВАТЬ 2: я изменил выражение awk на:
awk '{if ($8!=build_tools) print $8}'
чтобы это имело смысл.