Вот мой терминальный код:
root@mehedi-Inspiron-1545:/home/mehedi/SD Card/sdcard/10.5.50.31:2121/PhoneStorage/Download# ls -al
total 46676
drwxrwxr-x 3 mehedi mehedi 4096 জুল 11 05:36 .
drwxrwxr-x 13 mehedi mehedi 4096 জুল 11 05:33 ..
-rw-rw-r-- 1 mehedi mehedi 83277 জুল 10 10:18 17861803_1540974315927302_7704865319494415873_n.jpg
drwxrwxr-x 2 mehedi mehedi 4096 জুল 10 10:18 Adobe Reader
-rw-rw-r-- 1 mehedi mehedi 18952 জুল 10 10:18 config.bin
-rw-rw-r-- 1 mehedi mehedi 407930 জুল 10 10:18 download_20170115_010150.jpeg
-rw-rw-r-- 1 mehedi mehedi 66275 জুল 10 10:18 DVB-T-w-Gliwicach-kierunki-2014.02.17.jpg
-rw-rw-r-- 1 mehedi mehedi 3395403 জুল 10 10:19 Nasi_Lemak,_Mamak,_Sydney.jpg
Теперь может любой говорить мне, как удалить названную папку. и.. это два было скопировано с моей SD-карты.
Это стандартные нотации Linux для текущего каталога (.
) и родительский каталог (..
). Они не имеют никакого отношения к Android или SD-карте. Это - просто стандартное поведение файловой системы, и они существуют для каждого каталога в файловой системе.
$ pwd
/home/xieerqi/testdir/parent
$ ls -a
./ ../
# going to . directory doesn't do anything, you remain in same place
$ cd .
$ pwd
/home/xieerqi/testdir/parent
# going to .. brings you up one level to parent folder
$ cd ..
$ pwd
/home/xieerqi/testdir
Важное исключение - это с /
корневой каталог, ..
укажет на себя, так как нет никакого более высокого каталога для движения в.
Вы не можете выполнить удаление на них или (который не имел бы смысла, так как Вы пытаетесь избавиться от своего текущего рабочего каталога или его родителя):
$ pwd
/home/xieerqi/testdir/parent
$ rm -r .
rm: refusing to remove '.' or '..' directory: skipping '.'
$
Таким образом, что необходимо сделать о них?Ничего. Они - часть пакета Linux, так сказать. Это не повреждается, не пытайтесь зафиксировать его.
Частое использование .
через ./
нотация. Это может использоваться в случае, если, где Вы запустили скрипт или исполняемый файл в Вашем текущем рабочем каталоге как ./myscript.sh
или как аргумент команде, показывая файл в текущем каталоге, как ls ./myfile.txt
. Последний подход часто используется с globstar для расширения до нескольких имен файлов в текущем каталоге, такой как ls ./*
. Этот подход особенно полезен с именами файлов, которые могут содержать продвижение -
и таким образом такие имена файлов могут быть неправильно истолкованы командами как аргументы, в то время как ./-myfile.txt
избегает той проблемы.
Также важно отметить, что, так как имена файлов, содержащие ведущий точку, считают скрытыми на Linux, эти два каталога "указателя" видны, если Вы явно указываете для команды, что используете для обработки скрытых имен файлов (если команда, такой как find
делает это по умолчанию).
См. также: https://unix.stackexchange.com/a/63087/85039
Это "жесткие ссылки", управляемые самим Linux.
Давайте создадим каталог и взглянем на его детали:
$ mkdir dir1
$ ls -ld dir1
drwxrwxr-x 2 ravexina ravexina 4096 Jul 11 19:14 dir1/
обратите внимание на номер "2", это - количество ссылок на этот каталог (dir1
) какой из них к является самим именем каталога, и другой - .
в нем.
Давайте создадим новый каталог в dir1
:
$ mkdir dir1/new-dir
теперь имейте взгляд на детали dir1:
$ ls -ld dir1
drwxrwxr-x 3 ravexina ravexina 4096 Jul 11 19:14 dir1/
Количество ссылок стало "3", и поэтому ..
в new-dir
который указывает dir
.
Существуют различные использования для этой ссылки двух, например, с ..
можно относительно переместиться в каталоги.
Одно из самых важных использований .
должен выполнить сценарий оболочки в каталоге, что происходит, когда Вы запускаете названный скрипт for.sh
только путем введения его имени? хорошо оболочка будет думать, что Вы пытаетесь выполнить названную команду foo.sh
, это будет искать его, не может найти его и производит ошибку, с помощью ./script
Вы говорите оболочку точно, какой файл Вы хотите выполнить.