Сценарий оболочки для сортировки & mv файла по дате - PullRequest
1 голос
/ 19 июля 2011

Я новичок в Unix, я ищу много информации, но до сих пор не знаю, как сделать это в bash

Что я знаю, использует эту команду ls -tr|xargs -i ksh -c "mv {} ../tmp/" для перемещения файла за файлом.

Теперь мне нужно создать сценарий, который сортирует все эти файлы по системной дате и перемещает их в каталог. Первые 1000 самых старых файлов должны быть перемещены.

Файлы примеров r, подобные этим

KPK.AWQ07102011.66.6708.01
KPK.AWQ07102011.68.6708.01
KPK.EER07102011.561.8312.13
KPK.WWS07102011.806.3287.13

----------- Это скрипт, который я создал -------

if [ ! -d /app/RAID/Source_Files/test/testfolder ] then    
                echo "test directory does not exist!"    
                mkdir /app/RAID/Source_Files/calvin/testfolder    
                echo "unused_file directory created!"    
fi

echo "Moving xx oldest files to test directory"

ls -tr  /app/RAID/Source_Files/test/*.Z|head -1000|xargs -i ksh -c "mv {} /app/RAID/Source_Files/test/testfolder/"

проблема этого скрипта в
1) unix, запрос синтаксиса erro 'if '
2) Команда перемещения работает, но она создает новую тестовую папку с именами файлов, вместо этого перемещается в каталог тестовых папок (тестовая папка уже создана по этому пути)

Кто-нибудь может подать мне руку?спасибо

1 Ответ

1 голос
/ 19 июля 2011

Может ли это помочь?

mv `ls -tr|head -1000` ../tmp/

head -n занимает n первых строк предыдущей команды (здесь 1000 самых старых файлов). Обратные пометки позволяют использовать в качестве аргументов mv.

результат команд ls и head.
...