So I have found a file literally called "-X" in a folder, that is preventing me from using any meaningful commands in that folder because, as I understand it, at command runtime it will convert any wildcard characters into matching filenames, thus a command such as:
Code:
ls *
Ends up actually doing:
Code:
ls -X
Because the -X file is the first one in the folder...which is not a valid argument for ls. And thats what SunOS tells me. This happens with every command I've tried so far. The nature of this problem has also made it difficult for me to google for answers, so I'm hoping someone here can help me with an explanation or a way to rename this file! Here's some examples of my troubles:
Code:
root@qmgt2 # ls -al
total 3695918
-rw-r----- 1 root other 1771857920 Nov 14 2006 -X
dr-xr-xr-x 22 bin bin 512 Mar 29 2010 .
drwxr-xr-x 48 root root 2048 Feb 24 12:41 ..
drwxr-x--- 2 root other 512 Mar 9 2005 APP_BACKUPS
drwxr-xr-x 6 root other 512 Sep 22 2004 ORCLfmap
dr-xr-xr-x 37 bin bin 1024 Mar 29 2010 OV
drwxr-xr-x 3 root bin 512 Sep 20 2004 SUNWits
drwxr-xr-x 5 root sys 512 Sep 20 2004 SUNWrtvc
drwxr-xr-x 3 root other 512 Sep 24 2004 VRTSvcs
drwxr-xr-x 3 netcool ncoadmin 512 May 26 2009 alu
drwxr-x--- 3 root other 512 Apr 4 2005 backups
drwxrwxrwx 2 root other 512 Sep 22 2004 bin
drwxr-x--- 3 root other 512 Mar 29 2010 cfgdwn
drwxr-xr-x 5 root sys 512 Jun 12 2008 dcelocal
-rw-r----- 1 root other 25 Nov 15 2006 exclude
-rw-r----- 1 root other 1243 Nov 14 2006 exclude.txt.new
-rw-r----- 1 root other 2809 Nov 15 2006 exclude.txt.old
drwx------ 2 root root 8192 Sep 20 2004 lost+found
drwxr-x--- 3 root other 512 Feb 23 2005 mnams
-rw-r----- 1 root other 39992320 Sep 17 2007 mnams.tar
drwxr-x--- 3 root other 512 Mar 2 2005 msg
drwxr-xr-x 4 root other 512 Nov 10 2009 netcool
-rw-r----- 1 root other 79429147 May 28 2007 netcool.tar.gz
drwxr-xr-x 12 netcool ncoadmin 512 May 26 2009 netcoolnsa
drwxr-x--- 2 root other 512 Sep 7 2005 oracle
dr-xr-xr-x 12 bin bin 512 Jun 12 2008 perf
drwxr-xr-x 3 root bin 512 May 27 2005 sfw
drwxr-x--- 2 root other 28672 Apr 4 2010 tmp
root@qmgt2 # ls *
ls: illegal option -- X
usage: ls -1RaAdCxmnlhogrtucpFbqisfL@ [files]
root@qmgt2 # du -sk * | sort -n
du: illegal option -- X
usage: du [-a] [-d] [-h|-k] [-r] [-o|-s] [-L] [file ...]
root@qmgt2 # tail -X
usage: tail [+/-[n][lbc][f]] [file]
tail [+/-[n][l][r|f]] [file]
root@qmgt2 # tail "-X"
usage: tail [+/-[n][lbc][f]] [file]
tail [+/-[n][l][r|f]] [file]
root@qmgt2 # mv -X new.dat
mv: illegal option -- X
mv: Insufficient arguments (1)
Usage: mv [-f] [-i] f1 f2
mv [-f] [-i] f1 ... fn d1
mv [-f] [-i] d1 d2
root@qmgt2 # mv "-X" new.dat
mv: illegal option -- X
mv: Insufficient arguments (1)
Usage: mv [-f] [-i] f1 f2
mv [-f] [-i] f1 ... fn d1
mv [-f] [-i] d1 d2
root@qmgt2 # mv '-X' new.dat
mv: illegal option -- X
mv: Insufficient arguments (1)
Usage: mv [-f] [-i] f1 f2
mv [-f] [-i] f1 ... fn d1
mv [-f] [-i] d1 d2
root@qmgt2 # mv *X new.dat
mv: illegal option -- X
mv: Insufficient arguments (1)
Usage: mv [-f] [-i] f1 f2
mv [-f] [-i] f1 ... fn d1
mv [-f] [-i] d1 d2
I've never encountered this before. Something tells me that there is something special about this -X "file"... besides it being a royal PITA.
sweet, that did the trick. Although I still had issues viewing the file because of the - inside the name, so I just renamed it again to new.dat using your syntax above, and now tail doesn't complain.
In general, when dealing with arguments which look like options, you can use a double dash to signal the end of options:
Code:
command -o1 -o2 -- -X
In that case, -o1 and -o2 are two option-arguments to command. -- signals the end of options. Since -X appears after --, it is not considered an option-argument even though it begins with a dash.
alister makes a good point - many utilities do have such an option. Not all do, though, which is why I suggested the course I did - it's fairly portable.
This subject is a common one, though. I've even heard of people doing this on purpose to act as a safety mechanism, although I wouldn't ever do so myself:
Code:
$ mkdir garbage && cd garbage
$ touch file{1..5}
$ touch ./-i
$ rm *
rm: remove regular empty file `file1'? n
rm: remove regular empty file `file2'? n
rm: remove regular empty file `file3'? n
rm: remove regular empty file `file4'? n
rm: remove regular empty file `file5'? n
$
The "*" is expanded by my shell as "-i file1 file2 file3 file4 file5", so rm takes the -i as an option to prompt interactively just in case you do something silly like "rm *". It's bad practice, in my mind anyway, to rely on such, but to each their own.
Check your manpages to see if your utilities accept "--" to stop processing arguments. If so, it's a good habit to get in using, especially when scripting.
Hello.
System : opensuse leap 42.3
I have a bash script that build a text file.
I would like the last command doing :
print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt
where :
print_cmd ::= some printing... (1 Reply)
Linux Gurus,
I need to provide Read only access for particular group of users, they should have Read only access to entire server except their Home directory.
I tried using setfacl that's not helping. Can you please suggest is there any other alternate way to address this request.
Your help is... (5 Replies)
How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address
and column 3 contains “cc” e-mail address to include with same email.
Sample input file, email.txt
Below is an sample code where... (2 Replies)
logs:
"/home/abc/public_html/index.php"
"/home/abc/public_html/index.php"
"/home/xyz/public_html/index.php"
"/home/xyz/public_html/index.php"
"/home/xyz/public_html/index.php"
how to use "cut" or "awk" or "sed" to get the following result:
abc
abc
xyz
xyz
xyz (8 Replies)
Hi,
I have line in input file as below:
3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL
My expected output for line in the file must be :
"1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL"
Can someone... (7 Replies)
Hi all,
So I have found a file literally called "-X" in a folder, that is preventing me from using any meaningful commands in that folder because, as I understand it, at command runtime it will convert any wildcard characters into matching filenames, thus a command such as:
ls *Ends up... (1 Reply)
I need to remove a directory called "--"". But it seems "--" linked to /export/home/usr1, which I do not want to delete. How to rm "--" safely?
The OS is Solaris 9.
Thanks. (6 Replies)
Hi,
I was trying to call "script <an ip add>" command from .profile file to log everything whenever anyone logs in to this user. I did the following at the end of .profile. 1) Extracted the IP address who logged in 2) Called script < ip add> . The problem I am facing is all, aliases etc. written... (3 Replies)
Hi,
I issue smbclient on a Linux REd hat server :
smbclient -L ***.16.0.42 -U domaine/Administrator
Password:
Domain= OS= Server=
Domain= OS= Server=
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC distant
... (0 Replies)
Dear friends, following is the output of a script from which I want to remove spaces and new-line characters.
Example:-
Line1 abcdefghijklmnopqrstuvwxyz
Line2 mnopqrstuvwxyzabcdefghijkl
Line3 opqrstuvwxyzabcdefdefg
Here in above example, at every starting line there is a “tab” &... (4 Replies)