Qu'est-ce que le fichier ']'? Comment est-il créé?

4

Je me demande comment ce fichier est entré dans mon répertoire? Quand je lance ls -lrtça montre -rw-r--r-- 1et taille 117562. Puis-je obtenir des instructions pour cela?

Arya
la source
Très probablement une erreur de programmation. Certains scripts invoquent le programme [( test). Voir man test.
john
2
Quel est le chemin complet du ]fichier? Que file ]dit-on?
Grzegorz
Vérifier le contenu
Der Hochstapler
@Grzegorz On dit]: makefile script, ASCII text, with very long lines
Arya
@OliverSalzburg Quand j'essaie de vérifier le contenu, il est écrit:ls: cannot access ]/: Not a directory
Arya

Réponses:

3

Pour voir ce qui se passe, dans votre cas je ferais

$ ls -l ]?  
$ ls | od -x

Vous pouvez créer un fichier avec n'importe quel caractère ASCII char ( man 7 ascii) sous Unix. Ils sont presque toujours créés par accident. Parfois, il y a un caractère de fin dans un fichier.

$ ls | od -x   # to find out.

Je les enlève habituellement avec soin? puisque ? correspond à 1 car. D'abord ls? pour voir ce qui correspond, alors rm ?Ou s'il y a un étrange caractère de fin dans un fichier, puis<wierdfile?>

Il y avait une astuce pour créer un fichier avec le code ASCII de BEL (07). Ainsi, lorsque vous créiez un fichier ls, vous entendiez un son.

$ touch `echo -e "\a"`   # \a is BEL 
$ ls # the filename is not really ?, it is really the BEL sign (07)
?

$ ls | od -x   # see that it is 07

0000000 0a07
0000002

$ ls ? #  ? with match any file with 1 char.
?
$ rm ?  # just 1 file so safe to run it.

ou interactif pour un retrait encore plus sûr.

$ rm -i ?

rm: supprime le fichier vide régulier '\ a'? y

$ ls ?
ls: cannot access ?: No such file or directory

Oui, le fichier est parti.

joguest
la source
1

Un script défectueux pourrait à cela. Vous pouvez le supprimer avec

rm -vf ']'
peterh
la source