Как отличить каталог от содержимого в linux?

допустим, у вас есть это дерево каталогов

parent
   -----child1
           -----file0 
           -----grandchild1
                      -----file1
                      -----file2 
           -----grandchild2
                      -----file3
   -----child2

теперь мне нужно научиться двум вещам

  1. скопировать папку child1, так в ребенка2, так что там будет быть родителем/ребенка2/child1, так/grancdhild1/файл1
  2. скопируйте содержимое папки child1 в child2, так что будет parent / child2 / grancdhild1 / file1

обратите внимание, что второй не имеет "child1", в первом мы копируем папку в новую папку, в новой папке, в второй мы копируем содержимое папки в другую папку.

Если это имеет значение, допустим, ваше текущее местоположение является родителем.

моя главная задача здесь-скопировать все (подкаталоги, скрытые файлы и т. д..)

5
задан user893730
14.04.2023 9:00 Количество просмотров материала 3013
Распечатать страницу

3 ответа

Rsync на помощь! : -)

следите за косой чертой (или ее отсутствием) в конце параметра 'child1'. Это единственное различие. Команды выполняются в parent.

$ rsync -a child1 child2/

результат:

├── child1
│   ├── file0
│   ├── grandchild1
│   │   ├── file1
│   │   └── file2
│   └── grandchild2
│       └── file3
└── child2
    └── child1
        ├── file0
        ├── grandchild1
        │   ├── file1
        │   └── file2
        └── grandchild2
            └── file3

$ rsync -a child1/ child2/

результат:

├── child1
│   ├── file0
│   ├── grandchild1
│   │   ├── file1
│   │   └── file2
│   └── grandchild2
│       └── file3
└── child2
    ├── file0
    ├── grandchild1
    │   ├── file1
    │   └── file2
    └── grandchild2
        └── file3
3
отвечен karatedog 2023-04-15 16:48

предполагая, что parent ваша рабочая direcotry

сделать 1: cp -r child1 child2

Задание 2: cp -r child1/* child2

существуют различные реализации cp в *Nix-мире, но -r переключатель должен работать. Проверьте документацию для деталей. Также взгляните на -a переключиться в GNU cp.

2
отвечен thebodzio 2023-04-15 19:05

чтобы скопировать child1, нужно сделать cp child1 child2/child1. Для копирования содержимого объекта child1, вы могли бы сделать cp child1/* child2/*.

0
отвечен SaintWacko 2023-04-15 21:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх