Pracuję nad skryptem, który skopiuje TYLKO pliki, które zostały utworzone w ciągu ostatniego dnia wolnego do innego folderu. Problemem jest skrypt, który mam kopiuje wszystkie pliki w katalogu źródłowym, a nie tylko pliki starsze niż jeden dzień.
Oto co mam:
find . -mtime -1 -exec cp --preserve --parents -a "{}" /somefolder \;
Powyższy kod kopiuje wszystkie pliki w katalogu źródłowym. Jeśli usunę wszystkie argumenty dla „cp”, to zadziała:
find . -mtime -1 -exec cp "{}" /somefolder \;
Powyższy kod kopiuje tylko najnowsze pliki, jak chcę, ale muszę zachować atrybuty za pomocą argumentów cp.
Próbowałem również zmiennych i dla pętli myślących może problemem była opcja -exec:
files="$(find -mtime -1)"
for file in "$files"
do
cp --parents --preserve -a file /somefolder
Jednak powyższe dla pętli powoduje ten sam problem, wszystkie pliki są kopiowane. Jeśli odbieram pliki $, wyświetlane są tylko pliki, których potrzebuję.
Jak mogę to uruchomić?
find /sourcefolder -type f -mtime -1 -exec cp -a "{}" /somefolder \;