LINUX.ORG.RU

получить разницу между списками файлов


0

1

всем привет.

т.е. есть директория somedir с некоторыми файлами. после, в нее кладутся еще какие-то файлы. вопрос в том, как получить разницу в виде списка файлов?

сильно благодарен.

★★★

Последнее исправление: niXman (всего исправлений: 1)

> вопрос в том, как получить разницу в виде списка файлов?
Старый список есть? Если да, то оба отсортировать (sort) и натравить diff.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Так же есть еще одна утилита:

comm --help
Использование: comm [КЛЮЧ]... ФАЙЛ1 ФАЙЛ2
Сравнивает сортированные файлы ФАЙЛ1 и ФАЙЛ2 построчно.

При запуске без ключей выдает результат в три столбца. Первый столбец
содержит строки, уникальные для ФАЙЛА1, второй -- уникальные для
ФАЙЛА2, а третий -- общие для обоих файлов строки.

  -1                      не показывать столбец 1 (строки, уникальные
                          для ФАЙЛА1)
  -2                      не показывать столбец 2 (строки, уникальные
                          для ФАЙЛА2)
  -3                      не показывать столбец 3 (строки, встреченные
                          в обоих файлах)

  --check-order           проверить правильность сортировки ввода, даже
                          если все входные строки имеют пару
  --nocheck-order         не проверять правильность сортировки ввода
  --output-delimiter=РАЗ  отделять столбцы с помощью РАЗделителя
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти


Заметим, что при сравнении действуют правила, задаваемые LC_COLLATE.

Примеры:
  comm -12 файл1 файл2  вывести только строки, имеющиеся в файле1 и файле2.
  comm -3  файл1 файл2  вывести строки файла1, которых нет в файле2 и наоборот.

Об ошибках в comm сообщайте по адресу bug-coreutils@gnu.org.
Домашняя страница GNU coreutils: <http://www.gnu.org/software/coreutils/>
Справка по работе с программами GNU: <http://www.gnu.org/gethelp/>
Об ошибках в переводе comm сообщений по адресу <gnu@mx.ru>
Полная документация доступна по команде: info coreutils 'comm invocation'

kostik87 ★★★★★
()
Ответ на: комментарий от AITap

нет. списка пока что вообще нет) его надо как-то получить. но я нефкурю как.

по поводу sort и diff понял.

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

> его надо как-то получить. но я нефкурю как
`ls -1`
Если с поддиректориями, то `ls -1R`

Обратите внимание и на предыдущее сообщение, там всё правильно написано.

AITap ★★★★★
()
Ответ на: комментарий от niXman

Список файлов в привёденных мной примерах будет только в текущей директории (somedir), если у вас есть поддиректории, то выполните, как посоветовал AITap выше, либо используйте:

find ./ | sort > file1
find ./ | sort > file2

kostik87 ★★★★★
()
touch tempfile

(mv ...; cp ...)

find . -anewer tempfile -type f
schizoid ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.