This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a co开发者_运维技巧mment to explain where the question may be able to be answered.
Closed last year.
Improve this questionI'm using a linux server that display directories in a bold font, and files in a normal font.
e.g. $ ls
produces
afile.txt afolder anotherfile.txt anotherfolder
I'd like to use this feature on some other servers. How can it be done? with the .bash_profile?
If anyone has other ideas on how to differentiate folders from file, they'd be good to know?
You need to give ls
the --colors=…
option (e.g. via an alias). To actually configure the LS_COLORS
environmental variable used to define the colours, one good way is to create a configuration file for dircolors
, e.g. with just bold (attribute 1) directories:
echo DIR 1 >~/.dir_colors
Then in your .bash_profile
or .bashrc
, eval
the output of dircolors
run on that file to set LS_COLORS
according to your configuration. The relevant lines in my .bashrc
(copied from somewhere) look like this:
if [ -n "$COLORTERM" ]; then
alias ls='ls -F --color=auto'
if [ -x "`which dircolors`" -a -r "$HOME/.dir_colors" ]; then
eval `dircolors -b "$HOME/.dir_colors"`
fi
else
alias ls='ls -F'
fi
Note that some terminals do not, by default, display the bold attribute as true bold but rather just use a brighter colour. You need to configure your terminal to get real bold.
See the dircolors --print-database
for an example of a “complete” configuration file.
add this to your .bashrc or .profile: alias ls='ls --color=auto'
If anyone has other ideas on how to differentiate folders from file, they'd be good to know?
ls
does have the ability to differentiate items using the -F
flag.
From the man page:
-F, --classify
append indicator (one of */=>@|) to entries
All you have to do is add -F
to your ls
command in your terminal like so:
$ ls -F
You can make this permanent by setting up an alias by opening your .bashrc
(or similar) file and adding:
alias ls='ls -F'
After setting that (and either logging out and back on or running source ~/.bashrc
), you can simply run ls
and it will always assume you added -F
.
See the man page for ls, the -F option as was said above gives you probably what you need to readily see which names are folders, executables and symbolic links. And see the -G option to color the files you can also use both. I guess it's so simple, I wouldn't bother to put it in an alias. You can also use both to get the two effects at the same time.
ls -F -G
ls -FG
It's done with an environment variable. Start with reading the ls man page:
$ man ls
You may not be able to get just bold, but only bold with a specific color.
精彩评论