Сценарий Bash удаляет файл из другой папки, если он присутствует в обоих файлах с расширением * .c

Напишите сценарий оболочки, который удаляет все источники C в одном каталоге, если они находятся в структуре другого каталога. Первый аргумент в командной строке - это каталог, в котором находятся источники Си, а второй - каталог, в котором начинается поиск.


#!/bin/bash
if [ $# -ne 2 ]
    then
        echo "for execution complete the line of command: $0 dir1 dir2"
        exit 1
fi
if [ ! d ~/$1 ]
        then
        echo "write a directory in order to do the search"
        exit 1
fi
if [ ! d ~/$2 ]
        then
        echo "write a directory in order to do the search"
        exit 1
fi
find $2 -type f -name*.c > listafis.txt
for f in listafis.txt
    do
    if grep f $1
    then rm f
    fi
done

Это то, что я пробовал, и оно не работает

---- -----121--------851483---- Заменить 16.04 на 20.04, оставьте мои / home… и / boot? Ниже я показываю свой текущий диск / файловую систему. Я имею в виду заменить мой текущий 16.04 новой установкой 20.04 в / dev / sda6, сохранив мой раздел / home. Какие меры предосторожности следует предпринять (кроме ...

Ниже я показываю свой текущий диск / файловую систему. Я имею в виду заменить мой текущий 16.04 новой установкой 20.04 в / dev / sda6 , сохранив мой раздел / home .

Какие меры предосторожности я должен предпринять (кроме резервного копирования моего данные), касающиеся:
1. / Дом . Например, в настоящее время у меня есть user1 , который создается во время установки, и еще два. Достаточно ли использовать одно и то же имя пользователя во время установки 20.04, чтобы получить user1 home dir прочитанным к 20.04? Как заставить 20.04 прочитать домашние каталоги двух других?
2. / Загрузки
3. Etc.?


My текущее состояние:
$ sudo fdisk -l
[sudo] password for user1: 
Disk /dev/sda: 698.7 GiB, 750156374016 bytes, 1465149168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x7fa54200

Device     Boot      Start        End   Sectors   Size Id Type
/dev/sda2  *          2048    1955839   1953792   954M 83 Linux
/dev/sda3          1957886  750000127 748042242 356.7G  5 Extended
/dev/sda4       1078964224 1465147391 386183168 184.2G 83 Linux
/dev/sda5          1957888   66406399  64448512  30.7G 82 Linux swap / Solaris
/dev/sda6         66408448  164063231  97654784  46.6G 83 Linux
/dev/sda7        164065280  750000127 585934848 279.4G 83 Linux

Partition 3 does not start on physical sector boundary.
Partition table entries are not in disk order.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G   26M  1.6G   2% /run
/dev/sda6        46G   18G   26G  41% /
tmpfs           7.9G  423M  7.4G   6% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/sda2       923M  179M  681M  21% /boot
/dev/sda7       275G  242G   20G  93% /home
tmpfs           1.6G  136K  1.6G   1% /run/user/1000
0
задан 2 May 2020 в 13:58

2 ответа

Вы можете обновить этот способ:

  1. Сделайте резервную копию
  2. Нажмите Alt + F2 и введите update-manager -c -d в поле командной строки ,
  3. Диспетчер обновлений должен открыться и сообщить вам: доступен новый выпуск дистрибутива «20 .04».
  4. Нажмите «Обновить» и следуйте инструкциям на экране.

Таким образом, он должен обновлять только вашу систему без потери файлов. или другие данные.

Другой способ - через Live USB. Вы должны выбрать опцию, чтобы стереть Ubuntu 16.04 и установить 20.04, сохраняя ваши файлы.

0
ответ дан 19 June 2020 в 21:44

Я настоятельно рекомендую свежую установку . Это очистит всю вашу систему и гарантирует, что с самого начала все настроено так, как разработчики Ubuntu планировали и протестировали.

Поскольку у вас есть отдельный домашний раздел, вы можете хранить свои пользовательские данные в системе. Однако я рекомендую не брать на себя существующую конфигурацию пользовательской системы существующей домашней папки, за исключением очень специфических приложений, таких как почта Thunderbird, если вы используете это.

Это может быть достигнуто с помощью следующей процедуры.

  1. Загрузка к сеансу в реальном времени с использованием установочного USB.
  2. Смонтируйте свой жесткий диск, содержащий домашний домашний раздел
  3. Переименуйте текущую домашнюю папку («первого созданного пользователя»). "с корневой силой) от e. грамм. user1 - user1_old .
  4. Начать установку . Выберите «Что-то еще» в качестве типа установки, поскольку вам нужно назначить разделы самостоятельно.
  5. На экране разделения , a) назначьте свой старый корневой раздел в качестве нового корневого раздела . Убедитесь, что флажок «формат» установлен, чтобы объем был полностью удален перед установкой новой системы. б) назначьте текущий текущий раздел home как раздел / home, но обязательно уберите формат . Таким образом, данные в этом разделе останутся.
  6. Продолжите с установкой, и ваш user1 будет создан как первый пользователь. Это создаст новый каталог user1 в домашнем разделе.

Таким образом, у вас будет совершенно новая и чистая установка. Теперь вы можете очень быстро поместить свои пользовательские данные обратно, перемещая файлы из папок «Документы», «Видео», «Музыка» и т. Д. В / home / user_old в соответствующие папки в новом / home / user . По желанию, выбранные скрытые папки конфигурации можно перенести из старого дома.

Когда, спустя несколько недель, вам будет удобно, из папки user_old больше ничего не нужно, вы можете удалить ее.

0
ответ дан 19 June 2020 в 21:44

Другие вопросы по тегам:

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