Qual é a diferença entre os 2 comandos a seguir?
cp -rp /dir1/*.* /dir2/
cp -rp /dir1/* /dir2/
shell
shell-script
command-line
cp
stany
fonte
fonte
.
like.bashrc
) não são copiados com nenhum desses comandos. Para copiar os arquivos que você explicitamente deve indicar que, com.*
isso, para copiar todos os arquivos (incluindo as ocultas) o comando seriacp -rp /dir1/.* /dir1/* /dir2/
*.*
é a maneira do MS-DOS / Windows de fazê-lo, enquanto*
é a maneira do UNIX / Linux. No sufixo Unix (final de arquivo, a parte após.
- como.txt
ou.jpg
) é opcional ... No MS-DOS, o.
(ponto) e o sufixo eram necessários, para corresponder a todos os arquivos, um usado*.*
- enquanto correspondia a todos os arquivos de texto , um usaria*.txt
.FILENAME
ou mesmoFILE
.*.*
no DOS ainda corresponde aos arquivos nomeadosFILENAME
ouFILE
, porque o nome é 'realmente'FILENAME.
ouFILE.
(com uma extensão vazia). No Unix, o nome é 'realmente'FILENAME
ouFILE
, portanto*.*
, não corresponde.*
só iria corresponderFILE
, e nãoFILE.TXT
.Respostas:
*.*
só corresponde aos nomes de arquivos com um ponto no meio ou no final. Por exemplo:*
corresponde aos nomes dos arquivos acima, além dos nomes que não possuem um ponto. por exemplo:fonte
*.*
costumava ser a maneira correta de corresponder todos os arquivos no MS-DOS no dia de 8 + 3 nomes de arquivos. No MS-DOS, o ponto é obrigatório (embora implícito em arquivos que não possuem extensão).*.*
combina,foo.
mas não.foo
. Essa assimetria é terrível..
(diretório atual) e..
(diretório pai) que sempre existem em qualquer diretório (mesmo em diretórios vazios). Ritchie e Thompson mais tarde consideraram um recurso útil ocultar (por padrão) todos os.*rc
arquivos de configuração e adicionou uma-a
opção explícitals
para exibir todas essas entradas "ocultas" (ponto inicial). Portanto, não é muito surpreendente conhecer a história do Unix. Um ponto líder no Unix é especial desde "para sempre".Suponha que você tenha os seguintes arquivos em
/dir1
:Este comando copiará apenas os seguintes arquivos:
Isso copiará todos os arquivos em
/dir1
A condição também se aplica aos subdiretórios
/dir1
.fonte