2 votes

Comment trouver des fichiers avec une barre oblique de fin de ligne sous linux ?

J'ai quelques fichiers dans le système de fichiers qui se terminent par une barre oblique comme ceci :

my_text_file_1.txt\
some_other_file_2.pl\

J'utilise habituellement trouver pour ces cas, mais ce qui suit n'a pas fonctionné :

find . -name "*\\"

Quelqu'un a une idée ? Merci

5voto

Cakemox Points 23637

Vous pouvez le mettre entre guillemets ou utiliser des guillemets simples :

find . -name "*\\\\" -print
find . -name '*\\' -print

0 votes

Nice. Exactement ce dont j'ai besoin. Pendant que j'attends 9 minutes pour accepter votre réponse... pouvez-vous m'expliquer pourquoi je dois faire un double échappement ?

2 votes

@superspace : C'est la différence entre les guillemets simples et doubles dans bash (et je pense que tout autre Shell). Dans les chaînes de caractères entre guillemets, il développera toujours les méta-caractères, donc il aurait d'abord tourné \` into ` comme vous l'attendez. Cependant, cela est ensuite passé à find como "*\" , donde find l'élargit à nouveau. \" est un littéral " caractère, laissant find recherche de fichiers correspondant "*" . Le double-escaping permet de contourner ce problème de manière amusante ; et l'utilisation de guillemets simples indique au Shell de tout transmettre à la commande sans modification.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X