как переместить или скопировать определенное количество файлов в другой каталог [дубликат]

Tengo el mismo problema cuando Emacs PATH no copia el contenido del shell de inicio de sesión. Ejecuto esto en el búfer de Emacs *scratch *:

(getenv "PATH")
"/usr/bin:/bin:/usr/sbin:/sbin"

(Alternativamente, presione M-xy escriba getenv, luego escriba PATH.)

Busqué la ubicación de pdflatexen un shell de inicio de sesión en Terminal con:

> which pdflatex
/Library/TeX/texbin/pdflatex

Así que agregué ese directorio a la RUTA, p. agregue esto a.emacs:

(setenv "PATH" (concat (getenv "PATH") ":/Library/TeX/texbin"))

y vuelva a buscarlo con M-x load-filey escriba ~/.emacs. Y ahora C-c C-e lpen modo Org -funciona:

PDF file produced.

(Cross -publicado en StackOverlow .)

0
01.07.2017, 12:32
2 ответа

Возможное решение для mv150 файлов:

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

ПРИМЕЧАНИЕ: Пример сценария не тестировался, но должен работать.

0
28.01.2020, 04:44

Если ваша оболочка поддерживает подстановку процессов, вы можете попробовать следующее:

Первые 150 файлов будут скопированы в destdir_B, а СЛЕДУЮЩИЕ 300 — в destdir_C. Все, что осталось, останется нетронутым.

{
   head -n 150 | xargs -t cp -t "$destdir_B"
   head -n 300 | xargs -t cp -t "$destdir_C"
} <(find . -maxdepth 1 -type f)

Это связано с обычными оговорками о невозможности обработки экзотических имен файлов.

А когда у вас нет <(...) вы можете сохранить вывод find в файл, а затем перенаправить этот файл в {...}

HTH

0
28.01.2020, 04:44

Теги

Похожие вопросы