bash-3.2$ ls -ls
total 48
4 -rw-r--r-- 1 hdoostie etrade 1545 Aug 8 2012 ~
4 drwxr-xr-- 11 hdoostie etrade 4096 Dec 28 2011 det-us
4 drwxr-xr-- 6 hdoostie etrade 4096 Sep 18 2012 etaf
12 -rw-r--r-- 1 hdoostie etrade 11867 Jul 31 2012 l:template name="expanded_search">
4 drwxr-xr-- 8 hdoostie etrade 4096 Apr 22 11:31 neo
4 drwxr-xr-- 5 hdoostie etrade 4096 Jan 29 14:36 neo-apps-skins
4 drwxr-xr-- 5 hdoostie etrade 4096 Feb 16 2012 neo-webapp-prospect
4 drwxr-xr-- 3 hdoostie etrade 4096 Feb 22 2012 site_04_uat_in_here
4 drwxr-xr-- 3 hdoostie etrade 4096 Jun 20 2012 svntest
4 drwxr-xr-- 3 hdoostie etrade 4096 Feb 23 2012 xborder_in_here
"l:template name="expanded_search">" is some file content that somehow shows as a file. How do I "delete" this "file"?
A way of deleting any file, no matter what characters the filename contains is using it's inode numnber. You can show that using:
ls -i
That will shou you the files with the inode number next to them. Then you can delete that file using:
find -ium [inode_number] -exec rm {} \;
But in this case it should also be enough to just quote the filename:
rm 'l:template name="expanded_search">'
rm l:*
If you're the cautious type:
rm -i l:*
Related
Goal: Get Poetry working in my Anaconda3 venvs.
I'm using Anaconda3, via. Git Bash in PyCharm.
I installed Poetry using:
conda install -c conda-forge poetry
Location:
C:\Users\dabell\Anaconda3\Lib\site-packages\poetry
C:\Users\dabell\Anaconda3\Scripts\poetry.exe
$ ls -alrth
total 376K
-rw-r--r-- 3 HDS+dabell 4096 81 Mar 31 15:37 __init__.py
-rw-r--r-- 3 HDS+dabell 4096 1.4K Apr 20 06:53 poetry.py
-rw-r--r-- 3 HDS+dabell 4096 506 Apr 20 06:53 locations.py
-rw-r--r-- 3 HDS+dabell 4096 5.3K Apr 20 06:53 factory.py
-rw-r--r-- 3 HDS+dabell 4096 99 Apr 20 06:53 exceptions.py
-rw-r--r-- 3 HDS+dabell 4096 23 Apr 20 06:53 __version__.py
-rw-r--r-- 3 HDS+dabell 4096 92 Apr 20 06:53 __main__.py
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 core/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 __pycache__/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 _vendor/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 config/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 console/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 inspection/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 installation/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 io/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 json/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 layouts/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 masonry/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 mixology/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 packages/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 ./
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 publishing/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 puzzle/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 repositories/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 utils/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 version/
drwxr-xr-x 1 HDS+dabell 4096 0 Jun 16 15:30 ../
However, in (base) or in any (<venv>) - when I run:
$ poetry install pandas
bash: poetry: command not found
python -m poetry install pandas:
C:\Users\dabell\Anaconda3\envs\sdg\python.exe: No module named poetry
I added it to .bashrc, and still get the above error:
$ export PATH="$HOME/.poetry/bin:$PATH"
or
$ export PATH=C:/Users/dabell/Anaconda3/Lib/site-packages/poetry:$PATH
$ poetry install pandas
bash: poetry: command not found
$ winpty poetry install pandas
winpty: error: cannot start 'poetry': Not found in PATH
$ $HOME/.poetry/bin
bash: /c/Users/dabell/.poetry/bin: No such file or directory
HDS+dabell#PF2DCSXD MINGW64 ~/Documents/GitHub/lumada-catalog/synthetic-data-gen/sdg (daniel_sims)
$ export PATH=/C/Users/dabell/Anaconda3/Lib/site-packages/poetry:$PATH
HDS+dabell#PF2DCSXD MINGW64 ~/Documents/GitHub/lumada-catalog/synthetic-data-gen/sdg (daniel_sims)
$ poetry install pandas
bash: poetry: command not found
$ echo $PATH
/C/Users/dabell/Anaconda3/Lib/site-packages/poetry:/c/Users/dabell/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/dabell/bin:/c/Users/dabell/Anaconda3/envs/sdg:/c/Users/dabell/Anaconda3/e
nvs/sdg/Library/mingw-w64/bin:/c/Users/dabell/Anaconda3/envs/sdg/Library/usr/bin:/c/Users/dabell/Anaconda3/envs/sdg/Library/bin:/c/Users/dabell/Anaconda3/envs/sdg/Scripts:/c/Users/dabell/Anaconda3/envs/sdg/bin:/c/User
s/dabell/Anaconda3/condabin:/c/Program Files/Common Files/Oracle/Java/javapath:/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/Windo
wsPowerShell/v1.0:/c/WINDOWS/System32/OpenSSH:/c/Program Files (x86)/gs/gs9.56.1/bin:/c/Users/dabell/AppData/Local/Programs/Python/Python310:/usr/bin/vendor_perl:/usr/bin/core_perl
These are the contents in my file
-r-xr-xr-x 1 dinesh eng 29072 Aug 26 2004 config.sub
-r-xr-xr-x 1 dinesh eng 38515 Aug 26 2004 config.guess
-r-xr-xr-x 1 dinesh eng 5643 Aug 26 2004 install-sh
-r-xr-xr-x 1 dinesh eng 767 Aug 26 2004 mkinstalldirs
-r-xr-xr-x 1 dinesh eng 6328 Aug 26 2004 missing
-r-xr-xr-- 1 dinesh eng 440 Aug 27 2004 build.sh
-r--r--r-- 1 dinesh eng 975 Apr 2 2015 Makefile.am
-r--r--r-- 1 dinesh eng 1153 Apr 2 2015 configure.ac
-r-xr-xr-- 1 dinesh eng 952 Apr 2 2015 autogen.sh
drwxrwxr-x 4 dinesh eng 4096 Nov 30 2016 Scripts
lrwxrwxrwx 1 dinesh eng 35 Dec 1 2016 ltmain.sh -> /usr/share/libtool/config/ltmain.sh
-rw-rw-r-- 1 dinesh eng 2801 Dec 1 2016 config.h.in
lrwxrwxrwx 1 dinesh eng 32 Dec 1 2016 depcomp -> /usr/share/automake-1.11/depcomp
drwxrwxr-x 7 dinesh eng 4096 Dec 1 2016 install
-rw-rw-r-- 1 dinesh eng 41966 Feb 14 00:30 aclocal.m4
drwxr-xr-x 2 dinesh eng 81 Feb 14 00:30 autom4te.cache
-rwxrwxr-x 1 dinesh eng 606261 Feb 14 00:30 configure
drwxrwxr-x 3 dinesh eng 4096 Feb 14 00:30 bin
drwxrwxr-x 3 dinesh eng 53 Feb 14 00:30 preinstall
drwxrwxr-x 4 dinesh eng 4096 Feb 14 00:30 share
drwxrwxr-x 7 dinesh eng 97 Feb 14 00:30 test
-rw-rw-r-- 1 dinesh eng 26776 Feb 14 00:30 Makefile.in
drwxrwxr-x 9 dinesh eng 4096 Feb 14 00:31 build
-rw-rw-r-- 1 dinesh eng 10 Feb 14 00:35 stamp-h.in
drwxrwxr-x 3 dinesh eng 4096 Feb 23 09:25 conf
drwxrwxr-x 2 dinesh eng 4096 Apr 3 01:34 SCCS
drwxrwxr-x 4 dinesh eng 4096 Apr 3 01:34 doc
drwxrwxr-x 5 dinesh eng 12288 Apr 3 01:48 lib
drwxrwxr-x 3 dinesh eng 4096 Apr 3 01:48 src
drwxrwxr-x 8 dinesh eng 79 Jun 9 02:58 BitKeeper
i want to select and delete all the junk information except for the name of the file in one shot from vim. How can I do it?
With :help :normal and a simple normal mode command:
:%normal! d8W
Which means "on every line in the buffer, delete until the 8th WORD".
With a substitution:
:%s/^\(\S\+\s\+\)\{8}
Which means "substitute every sequence of height groups made of one or more non-whitespace characters followed by one or more white-space characters, starting from the beginning of the line".
Just select the block with Ctrl-v and delete it with d.
Hey VIM support virtual block mode.
In which you have choice of columnar selection of data.
1: Open you file using vim, press Ctrl+v.
2: Select all columns you wanna delete and press d.
3: To save file and exit press :wq
Give the following command:
:1,$s/.* //g
My question may seem fairly simple, I'm a beginner at bash scripting still, but I'm trying to format my ls output without using a tab when I print with awk.
Here is my current command that I'm running:
ls -al | sed 1d | awk '{print $1" ",$6" ", $7"\t", $9}'
and it prints out the following
drwx------ Feb 13 .
drwxr-xr-x Feb 5 ..
-rw-r--r-- Jan 21 .alias
-rw-r--r-- Feb 13 .bash_history
-rw-r--r-- Jan 29 .bash_profile
-rw-r--r-- Jan 21 .bash_profile~
-rw-r--r-- Feb 13 .bashrc
-rw-r--r-- Jan 21 .bashrc~
drwxr-xr-x Jan 3 csc135
drwxr-xr-x Aug 13 csc136
drwxr-xr-x Feb 9 csc235
drwxr-xr-x Oct 19 csc237
drwxr-xr-x Feb 18 csc310
drwxr-xr-x Feb 6 csc325
I have also attempted using a space:
ls -al | sed 1d | awk '{print $1" ",$6" ", $7" ", $9}'
which prints the following (quite bothersome):
drwx------ Feb 13 .
drwxr-xr-x Feb 5 ..
-rw-r--r-- Jan 21 .alias
-rw-r--r-- Feb 13 .bash_history
-rw-r--r-- Jan 29 .bash_profile
-rw-r--r-- Jan 21 .bash_profile~
-rw-r--r-- Feb 13 .bashrc
-rw-r--r-- Jan 21 .bashrc~
drwxr-xr-x Jan 3 csc135
drwxr-xr-x Aug 13 csc136
drwxr-xr-x Feb 9 csc235
drwxr-xr-x Oct 19 csc237
drwxr-xr-x Feb 18 csc310
drwxr-xr-x Feb 6 csc325
Is there any way to make it nicer looking like this?
drwx------ Feb 13 .
drwxr-xr-x Feb 5 ..
-rw-r--r-- Jan 21 .alias
-rw-r--r-- Feb 13 .bash_history
-rw-r--r-- Jan 29 .bash_profile
-rw-r--r-- Jan 21 .bash_profile~
-rw-r--r-- Feb 13 .bashrc
-rw-r--r-- Jan 21 .bashrc~
drwxr-xr-x Jan 3 csc135
drwxr-xr-x Aug 13 csc136
drwxr-xr-x Feb 9 csc235
drwxr-xr-x Oct 19 csc237
drwxr-xr-x Feb 18 csc310
drwxr-xr-x Feb 6 csc325
One automatic option that comes to mind is column:
$ ls -al | sed 1d | awk '{print $1,$6,$7,$9}' | column -t
drwxr-xr-x+ Feb 3 .
drwxrwxrwt+ Oct 9 ..
-rw------- Feb 12 .bash_history
-rwxr-xr-x Oct 9 .bash_profile
-rwxr-xr-x Feb 3 .bashrc
drwx------+ Feb 2 .cache
-rwxr-xr-x Oct 9 .inputrc
-rwxr-xr-x Feb 14 .mkshrc
-rwxr-xr-x Oct 9 .profile
drwxrwx---+ Dec 13 .ssh
Note the -t flag used for column:
-t, --table
Determine the number of columns the input contains and create
a table. Columns are delimited with whitespace, by default,
or with the characters supplied using the --output-separator
option. Table output is useful for pretty-printing.
Another way would be to used fixed lengths:
$ ls -al | sed 1d | awk '{printf "%-12s %-3s %-2s %s\n", $1,$6,$7,$9}'
drwxr-xr-x+ Feb 3 .
drwxrwxrwt+ Oct 9 ..
-rw------- Feb 12 .bash_history
-rwxr-xr-x Oct 9 .bash_profile
-rwxr-xr-x Feb 3 .bashrc
drwx------+ Feb 2 .cache
-rwxr-xr-x Oct 9 .inputrc
-rwxr-xr-x Feb 14 .mkshrc
-rwxr-xr-x Oct 9 .profile
drwxrwx---+ Dec 13 .ssh
There is another example of this in the GNU Awk User's guide.
ls -al|awk 'NR>1{print $1,$6,$7,$9}'|column -t
you don't need to use sed to delete the first line. Awk can do this if NR>1 print
You can avoid all unnecessary pipes by using features of awk.
ls -al | awk -v OFS="\t" 'NR>1 { print $1, $6, $7, $9 }'
Use NR>1 to get rid of the unnecessary sed to delete the first row.
Use OFS variable to set the output field separator to tab there by removing the need for column.
This command doesn't behave as I would expect. -atime +1 says "anything accessed within the last 24 hours", correct?
Output:
find . -type f -atime +1 -name 'installActions2*.log' | xargs ls -lt
-rw-r----- 1 bordb oinstall 369657 Nov 15 19:41 ./oms_b4_18604893.bak.15_Nov_14/cfgtoollogs/oui/installActions2014-03-17_09-18-01-PM.log
-rw-r----- 1 andy oinstall 1749422 Mar 17 2014 ./oracle_common/cfgtoollogs/oui/installActions2014-03-17_09-25-00-PM.log
-rw-r----- 1 andy oinstall 369657 Mar 17 2014 ./oms/cfgtoollogs/oui/installActions2014-03-17_09-18-01-PM.log
-rw-r----- 1 andy oinstall 600584 Mar 17 2014 ./jdk16/cfgtoollogs/oui/installActions2014-03-17_06-18-27PM.log
why are the files from March of 2014 and November showing up? So assuming the -atime switch says, "modified earier than the last 24 hours", I changed it to 60, and it lists the current directory, and all its files (ignores the -name switch) and doesn't traverse the subdirectories.
/ora/oracle/product/middleware_12cr3 Unix> find . -type f -atime +60 -name 'installActions2*.log' | xargs ls -lt
total 204
drwxr-xr-x 53 andy oinstall 4096 Jan 8 00:05 oms
drwxr-x--- 51 andy oinstall 4096 Jan 8 00:05 Oracle_WT
drwxr-x--- 33 andy oinstall 4096 Jan 7 22:09 oracle_common
drwxr-xr-x 2 andy oinstall 4096 Nov 20 07:45 logs
drwxr-xr-x 52 andy oinstall 4096 Nov 15 19:44 oms_b4_18604893.bak.15_Nov_14
drwxr-xr-x 10 andy oinstall 4096 Jun 18 2014 plugins
drwxr-xr-x 9 andy oinstall 4096 Jun 2 2014 wlserver_10.3
-rw-rw---- 1 andy oinstall 520 Mar 18 2014 domain-registry.xml
drwxr-x--- 3 andy oinstall 4096 Mar 18 2014 user_projects
drwxr-xr-x 5 andy oinstall 4096 Mar 17 2014 patch_wls1036
-rw-r--r-- 1 andy oinstall 1826 Mar 17 2014 registry.xml
-rw-r--r-- 1 andy oinstall 622 Mar 17 2014 ocm.rsp
-rw-r--r-- 1 andy oinstall 108917 Mar 17 2014 registry.dat
drwxr-xr-x 8 andy oinstall 4096 Mar 17 2014 utils
drwxr-xr-x 7 andy oinstall 36864 Mar 17 2014 modules
drwxr-xr-x 6 andy oinstall 4096 Mar 17 2014 jdk16
anyone know the reason? Sorry if this not an advanced question.
The -*time args to find consider time as growing larger in the past. So +1 means "more than one day ago", not "after one day ago". Try -1 to mean "less than one day ago".
**I cannot use find as I get a permission denied error
I am trying to find all the directories in /students that are world readable. This is what I have so far:
grep 'r-x' | cut -c8-10 | ls -l /students | sort | uniq -c
I don't understand why this is not working. I am telling the shell to search for occurrences of 'r-x'in the 8th-10th characters of ls -l which is other users permissions (hence world readable). Then I'm sorting the output and displaying a count of matching results with uniq -c. This is my understanding of what my shell script should do and I dont see why its not. Any help would be greatly appreciated!
For some reason it's pulling out more than just the directories readable by others.
Here is some sample output (I omitted the majority of the output)
1 drwx------ 11 lluong b20107 4096 May 26 11:15 lluong
1 drwx------ 23 stretbar b20097 4096 Dec 18 2012 stretbar
1 drwx------ 2 slawson b20003 4096 Mar 2 2013 slawson
1 drwx------ 9 fcunha b20117 4096 May 2 15:21 fcunha
1 drwxrwxrwx 10 jwu131 b20117 4096 Jul 2 19:26 jwu131
1 drwxrwxrwx 14 jadler4 b20127 4096 Oct 11 2012 jadler4
1 drwxrwxrwx 5 rlicudo1 b20067 4096 Apr 3 15:28 rlicudo1
1 drwxrwxrwx 8 lkrubner b20107 4096 Oct 25 2011 lkrubner
1 drwxrwxrwx 9 klau53 b20133 4096 Mar 12 2013 klau53
1 drwxrwx--x 14 vrobins9 b20123 4096 Mar 4 2013 vrobins9
1 drwxr-xr-x 10 aguo3 b20107 4096 Sep 24 00:13 aguo3
1 drwxr-xr-x 10 mdanial b20123 4096 Apr 10 20:46 mdanial
1 drwxr-xr-x 11 49 users 4096 Mar 28 2013 trac
1 drwxr-xr-x 11 rroger12 b20133 4096 May 8 10:00 rroger12
1 drwxr-xr-x 12 spark15 b20113 4096 May 15 2012 spark15
1 drwxr-xr-x 18 lulrich1 b20133 4096 Sep 29 22:36 lulrich1
1 drwxr-xr-x 18 yliu192 b20127 4096 Sep 26 12:19 yliu192
1 drwxr-xr-x 19 dstein b20117 4096 Feb 9 2013 dstein
1 drwxr-xr-x 20 jgarc166 b20127 4096 Sep 12 19:22 jgarc166
1 drwxr-xr-x 2 root root 16384 Nov 15 2007 lost+found
1 drwxr-xr-x 4 jsarno b20113 4096 Dec 7 2011 jsarno
1 drwxr-xr-x 6 btaylo19 b20123 4096 Mar 5 2012 btaylo19
1 drwxr-xr-x 6 dtu b20093 4096 Apr 18 19:18 dtu
1 drwxr-xr-x 6 ewu2 b20133 4096 May 4 14:30 ewu2
1 drwxr-xr-x 6 smeehan b20053 4096 Aug 29 00:19 smeehan
1 drwxr-xr-x 6 ybondar2 b20027 4096 May 23 2012 ybondar2
1 drwxr-xr-x 7 apekar b20103 4096 May 10 00:22 apekar
1 drwxr-xr-x 7 root root 4096 Mar 28 2013 tracprojects
1 drwxr-xr-x 8 jhsiao b20117 4096 Jul 26 17:33 jhsiao
1 drwxr-xr-x 8 xfeng18 b20137 4096 Sep 25 14:42 xfeng18
1 drwxr-xr-x 9 cmendo26 b20133 4096 Aug 19 01:22 cmendo26
1 drwx-----x 8 amissiro b20093 4096 May 12 16:00 amissiro
1 drwx--xr-x 17 apinchuk b20127 4096 May 26 23:03 apinchuk
1 drwx--x--x 10 aboak b20093 4096 Feb 18 2013 aboak
1 drwx--x--x 10 achan123 b20133 4096 Sep 6 21:24 achan123
1 drwx--x--x 10 acurkend b20133 4096 Jul 10 13:15 acurkend
1 drwx--x--x 10 akleinii b20133 4096 Jun 21 09:07 akleinii
1 drwx--x--x 10 akobzar b20133 4096 Sep 26 18:51 akobzar
1 drwx--x--x 10 amainett b20137 4096 Sep 22 11:17 amainett
1 drwx--x--x 10 apewther b20127 4096 Feb 6 2013 apewther
1 drwx--x--x 10 asyrtsov b20127 4096 Aug 16 10:43 asyrtsov
1 drwx--x--x 10 bernst b20135 4096 Sep 23 09:12 bernst
1 drwx--x--x 10 blilley b20123 4096 Apr 20 18:08 blilley
1 drwx--x--x 10 bmckeand b20117 4096 Aug 14 14:17 bmckeand
1 drwx--x--x 10 bsmith18 b20097 4096 Jun 10 11:19 bsmith18
1 drwx--x--x 10 bwilli18 b20117 4096 Nov 6 2012 bwilli18
1 drwx--x--x 10 cbeaton b20123 4096 May 19 04:07 cbeaton
1 drwx--x--x 10 cbeck4 b20137 4096 Sep 29 16:08 cbeck4
1 drwx--x--x 10 cho8 b20093 4096 Mar 24 2013 cho8
1 drwx--x--x 10 cliu58 b20117 4096 Oct 8 2012 cliu58
1 drwx--x--x 10 cmitch21 b20133 4096 Mar 10 2013 cmitch21
1 drwx--x--x 10 cnavarr9 b20127 4096 Apr 30 12:11 cnavarr9
1 drwx--x--x 10 dbienenf b20123 4096 Mar 20 2012 dbienenf
1 drwx--x--x 10 dlau13 b20135 4096 Jul 16 12:15 dlau13
1 drwx--x--x 10 dmok1 b20137 4096 Sep 24 12:50 dmok1
1 drwx--x--x 10 dnou b20133 4096 Apr 23 14:12 dnou
1 drwx--x--x 10 drajabar b20137 4096 Sep 3 20:20 drajabar
1 drwx--x--x 10 drodri12 b20115 4096 Sep 27 17:25 drodri12
1 drwx--x--x 10 ealberto b20113 4096 Dec 18 2012 ealberto
Rather than parsing ls, use find:
find /students -perm -o=r
This would list all files and directories in /students that are world readable.
If you don't want to recurse into subdirectories and want to find only directories, say:
find /students -maxdepth 1 -type d -perm -o=r
I am telling the shell to search for occurrences of 'r-x'in the 8th-10th characters of ls -l which is other users permissions (hence world readable).
No you're not. You're looking for "r-x" anywhere in the line and then taking the 8th through 10th characters of the lines found.
find /students -mindepth 1 -maxdepth 1 -type d -perm -005 | ...
"Why you shouldn't parse the output of ls(1)"
ls -lad */ | grep 'r-x' | sort | uniq -c
-d is used to list ONLY directories.
*/ tells *nix to search ONLY the current directory.
ls -lR |grep "^d" | cut -c8-10 | grep 'r-x' | sort | uniq -c