Возможное решение для mv
150 файлов:
mv `find ./ -maxdepth 1 -type f | head -n 150` "$destdir"
Замените mv
на cp
для копирования.
Вот тестовый случай:
mkdir d1 d2
cd d1
touch a b c d e f g h i j k l m n o p
cd ../
mv `find ./d1 -type f | head -n 5` ./d2/
И результат:
ls d1 d2
d1:
b c d e g h i k m n o
d2:
a f j l p
Правка:
Вот простой скрипт, который ответит на ваш комментарий:
#!/bin/sh
# NOTE: This will ONLY WORK WITH mv.
# It will NOT work with cp.
#
# How many files to move
COUNT=150
# The dir with all the files
DIR_MASTER="/path/to/dir/with/files"
# Slave dir list - no spaces in the path or directories!!!
DIR_SLAVES="/path/to/dirB /path/to/dirC /path/to/dirD"
for d in $DIR_SLAVES
do
echo "Moving ${COUNT} to ${d}..."
mv `find ${DIR_MASTER} -maxdepth 1 -type f | head -n ${COUNT}` "${d}"
done
exit
ПРИМЕЧАНИЕ: Пример сценария не тестировался, но должен работать.
Вы можете попробовать использовать правило udev
.
Например, вы можете создать файл /etc/udev/rules.d/99-disable-eth.rules
со следующим содержанием:
ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="pci", RUN+="/bin/sh -c 'echo 1 >/sys/bus/pci/devices/0000\:04\:00.0/remove'"
Не стесняйтесь настраивать его дальше, чтобы добавить более конкретные элементы, такие как атрибут поставщика, имя интерфейса и т.д.
Посмотрите на http://www.reactivated.net/writing_udev_rules.html для большего количества примеров и дополнительной информации о написании правил udev.