ls command not working properly with Slurm

4 views (last 30 days)
Hi,
I'm trying to run a Matlab script with my company's cluster (managed with Slurm). At some point, my script contains a simple
listSuj = ls('Suj*');
command, which works properly when I run the script locally, but does not work as expected when I run it on the cluster. Specifically, on top of returning a list of files or folders whose name begins by 'Suj', it returns the contents of these folders.
I suspect it is due to some interference with the Unix ls command, but I have little to no experience about Unix unfortunately...
Could anyone please let me know how to get Matlab's ls function to run properly?
Thanks!
Emma
  2 Comments
Kojiro Saito
Kojiro Saito on 6 Feb 2019
It might be the current directory of MATLAB from SLURM is not as you expected.
What the
pwd
returns?
And how about adding the following in the first place of MATLAB codes?
cd /path/to/your/directory
EmmaB
EmmaB on 6 Feb 2019
Hi Kojiro,
Thank you for your reply.
I actually cd to the correct directory (with absolute path) just above the ls command, so it's not an issue about the current working directory.
I forgot to mention that I'm a Windows user, if that might be of interest.
Also, the issue is solved when I use
[~, cmdout] = system('ls -d * |grep -i suj');
i.e., it returns a list of the desired folders, but in the form of a character vector, which I then have to sparse into an array of strings, and it is kind of bothersome anyway.
Thanks in advance for your help.

Sign in to comment.

Accepted Answer

Jan
Jan on 6 Feb 2019
Using ls to get a list of files or folders is a bad idea in any way. It replies the list a char array, but it is hard to use. So maybe there is another reason to use dir instead:
List = dir('Subj*');
FileName = fullfile({List.folder}, {List.name})
Working with absolute path names is more secure, because the current directory can be changed unexpectedly by callbacks of GUIs or timer 's.
  1 Comment
EmmaB
EmmaB on 6 Feb 2019
Thanks Jan.
Although I thought I had already tried it,
dir('Subj*');
did work!

Sign in to comment.

More Answers (0)

Categories

Find more on Third-Party Cluster Configuration in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!